我认为这个关于=
vs==
的讨论没有抓住重点。您在调用window.location
之前EnQueueHatBank
进行了更改,因此您在调用该函数之前导航到一个新页面。这就是阻止它运行的原因。所以你需要做的第一件事是:
首先调用 EnQueueHatBank。
if (location.href === 'http://www.scrap.tf/hats') {
EnQueueHatBank();
} else {
EnQueueHatBank();
window.location.href='http://www.scrap.tf/hats';
}
稍微清理一下代码,因为结构有点别扭。您正在调用EnQueueHatBank
任何一种方式,因此不需要在 if 语句中:
EnQueueHatBank();
if (window.location.href !== 'http://www.scrap.tf/hats') {
window.location.href = 'http://www.scrap.tf/hats';
}
最后,请记住,http://www.scrap.tf/hats/
可能与 去同一个地方http://www.scrap.tf/hats
,更不用说https://www.scrap.tf/hats?foo=bar
等等。最好使用不那么严格的测试:
EnQueueHatBank();
if (window.location.href.indexOf('://www.scrap.tf/hats') > -1) {
window.location.href = 'http://www.scrap.tf/hats';
}
编辑:根据您的评论,您需要这样做:
if (window.location.href.indexOf('://www.scrap.tf/hats') > -1) {
EnQueueHatBank();
}
else {
window.location.href = 'http://www.scrap.tf/hats';
}
这仅在您的程序在导航到 后再次运行时才有效scrap.tf/hats
,因此请确保每次加载新页面时它都会运行。
出于安全原因,您不能在一个页面上启动代码并在您导航到其他地方后让它继续。您必须EnQueueHatBank
从要运行的页面调用。