javascript - 在使用 ajax 提交时,在 greasemonkey 用户脚本中将文本附加到表单

标签 javascript ajax forms submit greasemonkey

所以,在 this问题 我解释了我的整个情况,为了节省空间,我不会重新发布我的整个情况

但这是我遇到问题的问题的答案

    function form_submit (event) {

var form, bClickNotSubmit;

if (event  &&  event.type == 'click') {
    bClickNotSubmit = true;
    form            = document.getElementById ('quick_reply_form');
}
else {
    bClickNotSubmit = false;
    form            = event ? event.target : this;
}

var arTextareas = form.getElementsByTagName ('textarea');

for (var i = arTextareas.length - 1; i >= 0; i--) {
    var elmTextarea     = arTextareas[i];
    elmTextarea.value   = "[font=Tahoma][color=white]" + elmTextarea.value + "[/color][/font]";
}

if ( ! bClickNotSubmit ) {
    form._submit();
}
    }

    window.addEventListener ('submit', form_submit, true);
    document.getElementById ('quick_reply_submit').addEventListener ('click', form_submit, true);

    HTMLFormElement.prototype._submit = HTMLFormElement.prototype.submit;
    HTMLFormElement.prototype.submit = form_submit;

所以这在 firefox 中工作得很好,但我现在意识到在 chrome 中存在问题。当它在页面上提交快速回复表单时,该功能似乎在运行,从某种意义上说,您可以看到内容被添加到文本的开头和结尾,但似乎速度不够快,因为表单在添加文本之前提交给服务器

谁知道怎么解决这个问题?

最佳答案

未测试,但尝试更改此设置:

if ( ! bClickNotSubmit ) {
    form._submit();
}


对此:

if ( ! bClickNotSubmit ) {
    form._submit();
}
else {
    event.preventDefault ();
    event.stopPropagation ();
    return false;
}

关于javascript - 在使用 ajax 提交时,在 greasemonkey 用户脚本中将文本附加到表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9695880/

相关文章:

jquery - Laravel ajax 删除请求 - 未知状态

php - 在 PHP 中检测 Ajax 并确保请求来 self 自己的网站

javascript - 在 Office Apps for Excel 2013 中 - 无法重新定义不可配置的属性 'context'“

Javascript按顺序调用函数

javascript - Azure 上的 JavaScript 中的 SQL 查询

forms - Angular 2 : Using dynamic inputs in reactive forms

java - 从浏览器地址栏复制 URL 并使用 html 粘贴到表单中?

javascript - 通过字符串访问 JavaScript 中的事件数据以指定要捕获的输入表单

javascript - 无需解析即可获取ajax输出

javascript - 通过javascript禁用表单组输入