捕获/覆盖Javascript重定向

时间:2011-10-17 06:17:29

标签: javascript html dom redirect href

我如何重写/捕获javascript重定向?

例如:

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

值" http://example.com"会被抓住并可能被改变。

3 个答案:

答案 0 :(得分:5)

AFAIK您可以捕获此事件,但您无法更改目标网址。您只能提示用户是否要取消重定向。为此,您可以订阅before unload event

window.onbeforeunload = function (e) {
    var e = e || window.event;

    // For IE and Firefox prior to version 4
    if (e) {
        e.returnValue = 'Are you sure you want to leave the site?';
    }

    // For Safari
    return 'Are you sure you want to leave the site?';
};

答案 1 :(得分:1)

您可以尝试使用__defineSetter()__,但它可能不适用于主机对象。

答案 2 :(得分:0)

查找使用此代码的所有代码:

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

并将其更改为:

openURL("http://example.com");

然后,实现此功能,您可以根据需要控制重定向:

function openURL(url) {
    // examine url and decide if you want to modify it
    window.location = url;
}