1

我有一个奇怪的 JavaScript 问题window.location.href,它显然只影响 Firefox(我使用的是 3.6)。

通常window.location.href不会是只读的,这在 Firefox 中完美运行:

window.location.href = "http://google.com/";

但是,当我调用函数以响应onunload 事件 ( <body onunload="testThis();">) 时,这不会按预期工作:

function testThis() {
    alert ("1: " + window.location.href);
    window.location.href = "http://google.com/";
    alert ("2: " + window.location.href);
    return false;
}

在这两种情况下,警报都会在 Firefox 中显示页面的当前位置,而无需进行更改。没有 JavaScript 错误,并且onunload 事件成功调用了该函数,因此问题似乎是编辑或替换window.location.href.

我试过使用window.location, document.location.href,甚至尝试改变window.location.search. 一个事件,特别是一个事件,是否有可能onunload导致window.location.href只读?

4

2 回答 2

5

是的,以防止恶意网页阻止用户离开。

于 2010-03-01T17:17:59.097 回答
0

作为记录,firefox 似乎使用 document.location 代替 document.location.href。

于 2011-02-25T21:22:52.307 回答