javascript - "Document not defined"带有 IMacros 的 Javascript

标签 javascript jquery imacros

我正在尝试在网页上运行用 javascript 编写的 IMacros 宏,如下所示:

for (var i = 1; i < 18; i++) {
   document.querySelector(".foo table > tbody > tr:nth-child(" + i + ") > .goo:nth-child(2) > a").click();
   document.querySelector(".foo > a").click();

if (i % 17===0) {
    alert('Reset i');
    i = 1;
    }
}

在 js 控制台上似乎一切正常,但是当我运行宏时,我得到:

"ReferenceError: document is not defined, line 2 (Error code: -991)"

我已经使用 this 将 JQuery 加载到 iMacros 中,并将我的代码放在:

$(document).ready(function () {
    //
}); 

但如果我使用 JQuery,我会不断收到此错误:

TypeError: $ is not a function, line 28 (Error code: -991)

如果我只使用 JS,我会得到与以前相同的“文档未定义”错误。

所以我的问题是,我是否需要定义文档,我该怎么做?

最佳答案

我从来没有能够将 jQuery 加载到 imacros 脚本中,但这最终并不是什么大问题。 要访问 DOM,您需要将每个元素引用为: window.content.document.getElementsByClassName('foo') 例如。 这将为您提供一个数组,因此请务必选择您需要的数组中的每个元素:

var foo_class = window.content.document.getElementsByClassName('foo');

for (i=0;i<foo_class.length;i++){
//do something
}

希望对你有帮助

编辑以添加工作示例:

var links = window.content.document.getElementsByClassName('question-hyperlink');
var list=[]
for (i=0;i<links.length;i++){ 
txt=links[i].innerHTML;
list.push(txt);
}
number=links.length;
linkstexts=list.toString();
showme="number of links with class=question-hyperlink: "+number+"       text links with class=question-hyperlink: "+linkstexts;

iimDisplay((showme))

复制 macro.js 中的代码并在 stackexchage 上的 firefox 中运行它。它将计算所有带有 class="question-hyperlink"的链接并显示它们各自的文本 - 您可以在播放(循环)按钮下的绿色文本框中看到它。

关于javascript - "Document not defined"带有 IMacros 的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24135985/

相关文章:

javascript - JavascriptMVC Controller 事件处理程序中的自定义选择?

javascript - 如何检查 Var 是否等于不同的 var - IMacro + Javascript

javascript - location.assign 在 IE 中不起作用

jquery - 需要 jQuery 目标帮助的 AddClass

Javascript 函数未从循环内返回

javascript - 将imacros提取的值返回到javascript中的php

javascript - 基于提取值的imacros javascript循环

javascript - 有没有办法在 JavaScript 中代理对属性的调用?

javascript - Object.assign 在构造函数之外被覆盖

Javascript 排列魔术