我如何修复 GM_xmlhttpRequest 中的这个 JS 范围
当我运行此代码时,警报 2 显示 6 个不同的 href 链接。警报 3 显示最后一个 href 6 次。我如何让它使用与警报2相同的对象(linkdom又名thelink)。
注意:这是在greasemonkey脚本中
{
var linkdom = thelink;
alert('2' + linkdom.getAttribute("href"));
GM_xmlhttpRequest({
method: 'GET',
url: href,
onload: function(resp){
//...
alert('3' + linkdom.getAttribute("href"));
}
});
//...
}
When i run this code alert 2 shows 6 different href links. alert 3 shows the last href 6 times. How do i make it use the same object (linkdom aka thelink) as alert 2.
NOTE: This is in a greasemonkey script
{
var linkdom = thelink;
alert('2' + linkdom.getAttribute("href"));
GM_xmlhttpRequest({
method: 'GET',
url: href,
onload: function(resp){
//...
alert('3' + linkdom.getAttribute("href"));
}
});
//...
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果这是您自己的函数,我会说将其作为参数传递。或者,如果 JavaScript 有默认参数,我会说将其作为默认参数传递。不过现在就是这样……试试这个。
这将创建一个外部函数并将局部变量设置为
linkdom
的当前值。然后它创建您的函数并返回它。然后我立即应用外部函数来恢复您的函数。外部函数不会共享相同的局部变量,因此代码应该可以工作。If this were your own function, I'd say to pass it in as a parameter. Or if JavaScript had default parameters, I'd say pass it in as a default parameter. The way it is now, though... try this.
This creates an outer function and sets a local variable to the current value of
linkdom
. It then creates your function and returns it. I then immediately apply the outer function to get your function back. The outer functions won't share the same local variable, so the code should work.