所以,在 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/