我有 3rd 方加载的 javascript 代码。javascript 跟踪许多指标,当用户退出页面时,我想将指标发送回我的服务器。
由于某些浏览器(如 IE)中的 XSS 检查,我无法进行简单的 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(); }
);
}
如果我使用 window.onbeforeunload,FF 会中止对“test_url”的请求,并且 IE8 不适用于 jquery 的 unload()。如果任意 test_url 设置代码太长,IE8 也无法工作,尽管如果立即将 IE8 附加到 DOM,IE8 似乎工作正常。
有没有更好的方法来解决这个问题?不幸的是,当用户离开页面时,这确实需要执行。