2014-03-24 26 views
0

我正在寫一個javascript函數,它可以創建一個iframe和一個定位框架的表單。表單應在卸載頁面之前提交表單。該代碼適用於除Firefox之外的所有瀏覽器。表單提交onbeforeunload在Firefox

function unloadPage(message) { 
    actionUrl = "https://test.testpage.com/log/logwatch.lw" 
    var iframe = $('<iframe id="pageLogFrame" name="pageLogFrame" style="display:none;"></iframe>'); 
    var form = $('<form id="pageLogForm" target="pageLogFrame" method="post"></form>'); 
    $('body').append(iframe); 
    $('body').append(form); 
    form.attr('action',actionUrl); 
    var input = $('<input type="hidden" name="pageLog" />'); 
    form.append(input); 
    input.val(message); 
    form.submit(); 
}; 

window.onbeforeunload = function(){ 
    var message = "sampleMessage"; 
    unloadPage(message); 
}; 

有沒有人有解決方案或想法如何使這項工作在Firerox?謝謝!

+2

在'unload'事件不能可靠地做任何事情,與網絡相關的(或更一般的任何異步)。 –

回答

0

Firefox要求您指定一個void返回值。

該函數應該爲Event對象的returnValue屬性指定一個字符串值並返回相同的字符串。

摘自:https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload

window.onbeforeunload = function(e) { 
    return 'Dialog text here.'; 
}; 
+0

感謝您花時間回答,我知道這個解決方案。但是,也許我沒有很好地解釋我的問題,我需要在沒有任何對話框或提示的情況下提交表單。我不需要通知用戶卸載事件正在發生。我需要這是透明的。 – dimisko