我有JavaScript代碼,由第三方加載。 javascript記錄了很多度量標準,當用戶退出頁面時,我想將度量標準發送回我的服務器。如何可靠地發送請求跨域和跨頁面瀏覽器卸載
由於XSS在某些瀏覽器中檢查,如IE,我不能做一個簡單的jquery.ajax()調用。相反,我使用jquery將圖像src附加到頁面上。下面的代碼,通過瀏覽器套管:
function record_metrics() {
//Arbitrary code execution here to set test_url
$esajquery('#MainDiv').append("<img src='" + test_url + "' />");
}
if ($esajquery.browser.msie) {
window.onbeforeunload = function() { record_metrics(); }
} else {
$esajquery(window).unload(
function(){ record_metrics(); }
);
}
FF中止請求「test_url」如果我使用window.onbeforeunload和IE8不jQuery的卸載工作()。 IE8也無法工作,如果任意test_url設置代碼太長,雖然IE8似乎工作正常,如果它立即附加到DOM。
有沒有更好的方法來解決這個問題?不幸的是,這真的需要在用戶離開頁面時執行。
用beforeunload綁定窗口並返回一個空字符串會導致「你確定要導航離開這個頁面嗎?」提示,這是我不能擁有的,也無法完成/完成record_metrics調用。簡單地不返回值也不起作用。 – Agmin 2010-04-19 16:32:05