我想编写一个以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的基础。
答案 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)
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;
}
}