开发者

Changing window.location.href in Firefox in response to an onunload event

I have a strange JavaScript problem using window.location.href, which apparently only affects Firefox (I'm using 3.6).

Normally window.location.href开发者_C百科 would not be read-only, and this works perfectly in Firefox:

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

However, when I call a function in response to an onunload event (<body onunload="testThis();">), this doesn't work as expected:

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

In both cases, the alert displays the current location of the page in Firefox, without making the change. There are no JavaScript errors, and the onunload event successfully calls the function, so the problem appears to be editing or replacing the value of window.location.href.

I've tried using window.location, document.location.href, even tried changing window.location.search. Is it possible that an event, specifically an onunload event, causes window.location.href to become read-only?


Yes, to prevent malicious webpages from blocking the user from leaving.


For the record, firefox seems to use document.location in lieu of document.location.href.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜