JavaScript事件未触发
所以我最近决定开始学习JavaScript。我只知道VB.NET的编程知识和HTML&CSS的设计。无论如何,scrape.tf是TF2银行业务的一个网站,它使事情变得自动化。我计划写一个基本的Chrome插件,我希望能够在点击按钮的情况下实现这个功能。我已经把这些都设置好了,但是当点击按钮时,我只需要报废。tf/hats,EnQueueHatBank();是他们用来加入队列的JS命令。除非我在网站上输入它,否则它甚至不会启动。我需要等它开火吗JavaScript事件未触发,javascript,events,Javascript,Events,所以我最近决定开始学习JavaScript。我只知道VB.NET的编程知识和HTML&CSS的设计。无论如何,scrape.tf是TF2银行业务的一个网站,它使事情变得自动化。我计划写一个基本的Chrome插件,我希望能够在点击按钮的情况下实现这个功能。我已经把这些都设置好了,但是当点击按钮时,我只需要报废。tf/hats,EnQueueHatBank();是他们用来加入队列的JS命令。除非我在网站上输入它,否则它甚至不会启动。我需要等它开火吗 if (location.href === 'ht
if (location.href === 'http://scrap.tf/hats')
{
EnQueueHatBank();
}
else
{
window.location.href='http://scrap.tf/hats';
EnQueueHatBank();
}
您需要更正比较以使用两个等号
if (location.href == 'http://www.scrap.tf/hats')
{
EnQueueHatBank();
}
一旦您使用了jslint之类的工具,javascript甚至提供了一个
==
操作符,它也进行类型检查(检查两边是否都是字符串,如本例所示)。您应该使用比较===
操作,但您进行了值赋值=
if (location.href === 'http://www.scrap.tf/hats')
{
EnQueueHatBank();
}
else
{
window.location.href='http://www.scrap.tf/hats';
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
后再次运行时,这才有效,因此请确保每次加载新页面时都会运行该程序
出于安全原因,您不能在一个页面上启动代码,并在导航到其他地方后让它继续。你必须从它要运行的页面调用
排队银行
。=
是一个分配=
是一个比较。尝试=
而不是=
它仍然会将我重定向到该页面,即使我在上面(if和else部分的函数相同。是否有任何错误?@TylerDunn太好了!可以共享修复程序吗?将www.从中删除,它将不再重定向。我现在的问题是,如果它不在页面上,在重定向后,EnQueueHatBank()不会被激发。@TylerDunn最好这样做if。)(window.location.href!=='http://www.scrap.tf/hats“){window.location.href=”http://www.scrap.tf/hats“;}EnQueueHatBank();
问题是,在使用该命令之前,它应该在该页面上,因为如果不在该页面上,EnQueueHatBank()没有任何意义。@TylerDunn在这种情况下,用条件检查下面的函数尝试他的第二个解决方案,看看结果是否不同。结果不一样。在激发EnQueueHatBank()之前,它需要在scrap.tf/hats上。修复了我的问题,它没有重定向,我现在的问题是一旦重定向,EnQueueHatBank()是否有办法将EnQueueHatBank作为一个单独的函数,并让它在其他情况下执行该函数,或者仍然考虑继续代码?