2012-03-14 45 views
2

所以,在this問題我解釋了我的整個情況,並節省空間,我不打算重新發布我的整個情況在Greasemonkey的userscript文本追加到一個表單時使用Ajax提交

但這裏是答案那我有

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瀏覽器的問題。當它在頁面上提交快速回復表單時,函數似乎會運行,從某種意義上說,您可以看到文本被添加到文本的開頭和結尾,但它似乎不夠快,因爲表單在文本添加前被提交到服務器

沒有人知道如何解決這個問題嗎?

回答

0

沒有測試,但嘗試改變這一點:

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


要這樣:

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

這似乎並沒有做任何事情來幫助這個問題。 – Bigandrewgold 2012-03-14 20:04:43

+0

雖然你的修補程序不起作用,但我可以通過從if語句中取出form.submit並將2個event.statements放在腳本中更高級的方式使它工作,儘管感謝您的幫助 – Bigandrewgold 2012-03-14 22:12:09