如何使用JavaScript“安全地”加载页面

时间:2013-05-16 17:31:04

标签: javascript jquery url

我想编写一个以URL作为参数的小函数,但在加载该URL之前,它会检查它是否已经在该页面上。如果是这样,它返回false并且没有任何反应;否则,它加载指定的URL。我试过这样的事情:

function load(url) {
    if(window.location.href === url) {
        return false;
    } else {
        window.location.href = url;
    }
}

不幸的是,如果我当前的页面是http://www.example.org/index.html,那么,在调用load('http://www.example.org/index.html')时什么都不做,当我调用load('index.html')时,它会重新加载页面。如何添加额外的功能来捕获相对地址以及绝对地址?

编辑:我想让它变得动态,以便我可以在任何页面上使用它,而不知道其URL的基础。

2 个答案:

答案 0 :(得分:0)

这可能对您有用:

function load(url) {
    if(window.location.href === url || window.location.href === 'http://www.example.org/' + url) {
        return false;
    } else {
        window.location.href = url;
    }
}

但是如果不了解更多关于如何使用load函数的话,很难知道。

答案 1 :(得分:0)

Got it

String.prototype.endsWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
};

然后,检查变得容易:

function load(url) {
    if(window.location.href.endsWith(url)) {
        return false;
    } else {
        window.location.href = url;
    }
}