我制作了一个具有此行代码的firefox插件
var imgs = document.getElementsByTagName('IMG')
document.getElementsByTagName('IMG')
似乎仅在我在Web控制台中运行但包装在插件中时才引用当前选项卡。 imgs.length = 0,尽管我知道当前选项卡中的页面具有img标签,因为它在Web控制台中运行良好。我需要添加什么来告诉javascript引用当前页面上的html?
该行也在此函数内。
var current = browser.tabs.getCurrent();
current.then(listenForClick, report);
为什么then.current
并不意味着要在当前选项卡上的网页上执行listenForClick函数?
当我将加载项作为临时加载项时,我发现这是因为临时人员只能查看加载了该加载项的网页,但是即使在获得加载项签名后,我也可以像真正的加载项一样将其正式加载到firefox中,上述问题仍然存在
更新
在阅读Jaromanda X的评论后,我尝试再次执行内容脚本方法,但这次它起作用了。这让我很开心,因为开发我的第一个浏览器扩展的整个过程是一个非常令人沮丧和痛苦的过程。我不喜欢在JS中将参数隐式传递给函数。 IMO使阅读他人代码的人很难阅读JS。同样由于这样做的痛苦过程,我还有最后一个问题。当您临时加载插件时,内容脚本为什么不会出现在firefox调试器中。 (即使在清单文件中列出,这也奇怪地破坏了我的插件,因为我已经在我的文档中提到过背景脚本,但是即使对于仅具有内容脚本的示例插件,因此在清单文件中提到了该脚本,内容脚本STILL也没有) t出现在调试器中)如果在开发过程的早期尝试使用内容脚本时能够从头开始调试内容脚本,那么我可能不会问这个问题。
P.S。谷歌搜索时我找不到答案。