Javascript 在GreaseMonkey中循环
我正在开发我的第一个greasemonkey脚本(尝试编辑页面内容并将其添加到特定网站),出于某种原因,它拒绝在一个Javascript 在GreaseMonkey中循环,javascript,regex,greasemonkey,google-chrome-extension,Javascript,Regex,Greasemonkey,Google Chrome Extension,我正在开发我的第一个greasemonkey脚本(尝试编辑页面内容并将其添加到特定网站),出于某种原因,它拒绝在一个循环之外工作。。例如: var anchorTag = window.document.getElementsByTagName('a'); var anchorTagNumber = window.document.getElementsByTagName('a').length; .. .. i = 0 j = 0; function collectId(i,link) {
循环之外工作。。例如:
var anchorTag = window.document.getElementsByTagName('a');
var anchorTagNumber = window.document.getElementsByTagName('a').length;
..
..
i = 0
j = 0;
function collectId(i,link) {
linkArray[j] = new Array(2);
linkArray[j][0] = i;
linkArray[j][1] = link;
j++;
}
while(i <= anchorTagNumber)
{
testHref = anchorTag[i].href;
testHTML = anchorTag[i].innerHTML;
patHref = /some regex/;
patCaptureId = /some regex/;
testId = patCaptureId.exec(testHref);
patHTML = /some regex/;
patHTML2 = /some regex/;
patHTML3 = /some regex/;
if(patHref.test(testHref) && !patHTML.test(testHTML) && !patHTML2.test(testHTML))
{
linkId = testId[1];
collectId(i,linkId);
}
i++;
}
var-anchorTag=window.document.getElementsByTagName('a');
var anchorTagNumber=window.document.getElementsByTagName('a').length;
..
..
i=0
j=0;
函数collectId(i,link){
linkArray[j]=新数组(2);
linkArray[j][0]=i;
linkArray[j][1]=链接;
j++;
}
while(i代替使用while,您可以尝试每100毫秒调用一次setInterval函数
interval = setInterval(function(){
iDidIt = doSomethin()
if(iDidIt){
clear interval;
}
},100)
最明显的问题是数组正在溢出,这将导致脚本出错
这是:while(我有没有试过在你的循环中加入一些警报,看看它在什么时候失败?我会马上猜测执行者。另外,也许可以尝试使用Firefox并使用错误控制台,除非Chrome有相同的东西。为什么你会得到两次锚定标签?只需使用var anchorTagNumber=anchorTag.length
来提高它的效率。并找出该问题可能会将console.log(i,anchorTagNumber)
添加到while循环中。您还可以删除窗口。
var anchorTag = window.document.getElementsByTagName('a');
var anchorTagNumber = window.document.getElementsByTagName('a').length;
var anchorTag = window.document.getElementsByTagName('a');
var anchorTagNumber = anchorTag.length;