位置更改时不会触发onunload和onbeforeunload

时间:2015-08-14 12:12:14

标签: javascript url-redirection onbeforeunload window.location onunload

如何检测在function displayImage(n) { var pic = document.createElement("img"); pic.setAttribute("src", h[n].imgUrl); pic.setAttribute("width", "50"); l.appendChild(pic); //l.innerHTML = "<img src=\"" + h[n].imgUrl + "\">"; }; 标签之间进行的window.location修改?

当我在chrome控制台中执行以下操作时,我按预期获得了我的console.log。

<head>

然而如果我将此代码段放在我页面的window.onbeforeunload = function(){ console.log("Before Unload"); }; window.location.replace("http://www.google.com"); 中放置的js文件中,那么我的console.log就不会出现了,<head>似乎永远不会触发onbeforeunload。我确信代码片段已正确执行,因为我可以使用调试器语句遍历每一行。

如何在我的身体加载之前检测页面的onunload是否有位置变化?我无法覆盖window.location.replace,因为它是不可伪造的。

这是一个简单的代码示例,可以重现我的问题

<head>

我的限制是我只能更改function1的内容。

修改 实际用例如下: 我在网站的标题中有一个脚本。我可以在这个脚本中写任何我想要的东西,但是我无法控制网站的其他部分。 在某些情况下,有一个脚本紧跟在我之后将执行重定向。在这种情况下,我需要设置一个cookie。

1 个答案:

答案 0 :(得分:0)

&#39; pagehide&#39;在这种情况下,事件将触发,而不是在#un;

之前触发