2011-12-27 39 views
1

我試圖從其他人的代碼中修復此錯誤。基本上,有此按鈕的iframe內:按鈕服務器OnClick事件未在Firefox中被解僱

<asp:Button runat="server" ID="doUpload" OnClick="DoUpload_Click" OnClientClick="alert('OnClientClick');"/> 

的.js文件,此行被稱爲:

$('#doUpload', this.getIFrameDocument()).click(); 

這完全適用於IE和Chrome。服務器事件處理程序「DoUpload_Click」在沒有問題的情況下執行,Firefox除外。在Firefox上,OnClientClick被調用,但不是服務器端事件處理程序。我將它追蹤到了不可見的iframe(display:none)。

現在,任何想法我仍然可以執行服務器處理程序,同時保持iframe不可見?一個想法是將iframe放在用戶瀏覽器維度之外的座標上......但歡迎任何其他想法!

+1

你爲什麼使用javascript事件觸發服務器事件? OnClick事件應該自行觸發回發,並應調用doUpload方法。 – rie819 2011-12-27 16:48:05

+0

@ rie819:可用於在執行服務器端功能之前驗證任何其他輸入狀態。 – nerdcoder 2011-12-27 16:53:22

+0

是啊...它是頁面的一部分,可以讓你上傳某些種類的文件而不用重新加載頁面。這是間接的,我同意......但它達到了效果。 – CBC22 2011-12-27 16:56:31

回答

0

嘗試在您的js客戶端單擊事件處理程序上添加Form.submit觸發器。

1

也許this blog entry會幫助你。但首先,您可以嘗試在任何javascript命令調用後使用「return true;」;如果客戶端方法返回false,則瀏覽器事件處理程序可能會抑制服務器端執行 - 因此,如果根本沒有返回值,則它可能會有不同的行爲(例如,默認情況下爲false)。

兩個都沒有測試,但。