0

我想编写一个以 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 的基础。

4

2 回答 2

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使用该功能的信息,就很难知道。

于 2013-05-16T17:38:08.890 回答
0

明白了

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;
    }
}
于 2014-07-01T16:43:49.203 回答