访问多进程Firefox中不支持的内容窗口

时间:2016-08-10 11:12:56

标签: javascript imacros

我使用javascript和imacros从网站收集一些数据,我有这行代码:

final_macro += "ADD !EXTRACT " + '"' + lager_col2[0].textContent + '"' + "\n";

当我在浏览器中运行js时出现此错误:

  

错误:多进程Firefox,第208行不支持访问内容窗口(错误代码:-991)

我应该担心吗?禁止使用textContent吗? 问题是lager_col2[0]有时恰好是一个链接,我只想要链接中的文本,而不是标签和所有内容。很自然地,我选择textContent。我怎么能绕过这个?

此外,在尝试使用window.document.getElementsByClassName访问某些节点时,我是否在设置自己? 使用iMACROS TAG POS / XPATH会更好吗?

5 个答案:

答案 0 :(得分:4)

奇怪的是,我得到了完全相同的错误,甚至到了代码行号。显然我的JavaScript行号与你的不符。起初我认为问题是由于我最近升级到Firefox 48引起的。但是当我将我的imacros移动到运行Firefox 47的另一台机器时,我得到了与你完全相同的错误。

更新:我的解决方法是将Firefox iMacros扩展从9.0.3降级到8.9.7。现在我的宏再次使用Firefox版本47和iMacros版本8.9.7。

答案 1 :(得分:0)

在类似的情况下,我可以建议您使用附加功能的旧解决方法之一来获取一些窗口内容:

var someContent = getSomeContent("document.getElementsByClassName('someclass')[0].textContent");
alert(someContent);

function getSomeContent(selector) {
    var ret = iimPlayCode("URL GOTO=javascript:alert(" + selector + ");");
    if (ret < 0)
        return iimGetErrorText().match(/Dialog message: "([\s\S]*)",/)[1];
}

这个想法似乎很有帮助。但我还没有在多进程Firefox中测试这个脚本。

答案 2 :(得分:0)

重新安装插件iMacros。这对我很有帮助。

答案 3 :(得分:0)

imacro不支持访问dom元素请回到比imacro 9更早的旧版imacro。

答案 4 :(得分:0)

Firefox&gt; 47.0.1和iMacros&gt; 8.9.7不支持(因为Firefox架构已更改)

<强>解决:

步骤1.删除附加的imacros(如果已安装)。

步骤2.卸载Firefox。

步骤3.点击此链接下载Firefox版Firefox 47.0.1。 https://download-installer.cdn.mozilla.net/pub/firefox/releases/47.0.1/win32/en-US/Firefox%20Setup%2047.0.1.exe或此链接https://support.mozilla.org/en-US/kb/install-older-version-of-firefox

步骤4.安装Firefox 47.0.1并在启动Firefox后访问“about:support”。

步骤5.您可以看到“刷新Firefox”按钮,单击它并重新启动Firefox。

步骤6.点击此链接下载iMacros版本8.9.7。 https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/versions/