Javascript Chrome窗口onunload事件

Javascript Chrome窗口onunload事件,javascript,events,google-chrome,Javascript,Events,Google Chrome,我正在尝试执行以下代码 window.onunload = function () { var sTag = document.createElement('script'); sTag.src = 'mysrc'; document.getElementsByTagName('head')[0].appendChild(sTag); return false; }; } 它似乎在FF中工作正常,但在chrome中,一旦卸载事件被触发,我就会得到

我正在尝试执行以下代码

window.onunload = function () { 
     var sTag = document.createElement('script'); 
     sTag.src = 'mysrc'; 
     document.getElementsByTagName('head')[0].appendChild(sTag); 
     return false; };
}

它似乎在FF中工作正常,但在chrome中,一旦卸载事件被触发,我就会得到被取消的下载状态。我在SO中看到了一些关于ajax解决方案的帖子,但我正在跨域iframe中执行此脚本。我只是想在每个访问者的页面上记录api的运行时间。所以,我在卸载页面时发送一些时间日志信息。对于上述内容,是否有任何解决方法?

出于您所描述的目的,您可以将该脚本加载到页面或父窗口(您说它是iframe,对吗?)中,并在window.unload上运行一个函数:

window.onunload = function(){
   window.top.logtime(); // if it is in the parent, or 
   window.logtime() //if it is in the same window
};
并且不要返回false,卸载事件无法取消。(在最佳情况下,用户将获得一个警报对话框,该对话框将覆盖return false语句。)


我认为这不同的是,在身体卸载之前,它执行新功能的速度有多快。操作DOM肯定比调用要慢得多。

我怀疑您是否可以依靠浏览器在脚本元素加载之前停留足够长的时间。我尝试使用
new Image()
调用,但效果似乎很好。因为img调用可能不会阻止其他资源的下载。无论您为什么不使用?@JimSchubert实际上在
窗口中。onbeforeuload
除了返回语句之外,我无法执行任何操作。你能告诉我你会怎么处理它吗?