Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我能';t从Chrome扩展弹出窗口访问网页DOM_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 我能';t从Chrome扩展弹出窗口访问网页DOM

Javascript 我能';t从Chrome扩展弹出窗口访问网页DOM,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在努力为我的Chrome扩展访问网页的DOM 在我做的一个扩展中,我的扩展从content.js文件中解析DOM,没有问题。这在页面加载时发生。用户根本不需要交互/打开扩展,它只需要在后台运行 现在我试着用一个按钮来触发它。这意味着用户将单击浏览器中的扩展图标,popup.html将显示一些html(包括按钮) 这就是我的问题所在。当我现在尝试访问DOM时(通过按钮的单击事件),它显示popup.html的DOM,而不是web页面(活动选项卡) 因此,快速浏览一下文档(我承认我很难处理这些文

我正在努力为我的Chrome扩展访问网页的DOM

在我做的一个扩展中,我的扩展从
content.js
文件中解析DOM,没有问题。这在页面加载时发生。用户根本不需要交互/打开扩展,它只需要在后台运行

现在我试着用一个按钮来触发它。这意味着用户将单击浏览器中的扩展图标,
popup.html
将显示一些html(包括按钮)

这就是我的问题所在。当我现在尝试访问DOM时(通过按钮的单击事件),它显示popup.html的DOM,而不是web页面(活动选项卡)

因此,快速浏览一下文档(我承认我很难处理这些文档)就会发现这可能是一个权限问题。在manifest.json文件中,我添加了

"permissions": [
"activeTab"
],
这没用:(

因此,在这个新的扩展中,我没有使用background.js或content.js。我想这就是问题所在,因为我调用的javascript嵌入在HTML弹出窗口中!这对我来说很有意义(关于我的行为)


如何从HTML弹出窗口访问活动选项卡的DOM访问页面DOM的唯一方法是使用内容脚本。由于您已设置了
activeTab
权限,因此可以通过省略第一个参数(
tabId
)将内容脚本插入活动选项卡

以下是一个例子:

chrome.tabs.executeScript({ file: "content.js" });

我也遇到过同样的问题,我点击按钮打开一个弹出窗口,然后如何访问弹出窗口的内容。是的,你需要使用内容脚本,但我做的一个技巧是,当弹出窗口打开时,使用window.name并获取该窗口的名称。然后你可以通过var test=window.name引用该弹出窗口(“‘该窗口的名称’)。然后您可以从测试中引用弹出窗口的dom元素。对于我来说,如果需要包含一些代码来更好地解释,请告诉我。

访问页面dom的唯一方法是使用内容脚本。由于您已设置了
activeTab
权限,因此可以通过省略f将内容脚本插入活动选项卡第一个参数(
tabId
)。非常清晰。谢谢@Titus。我是删除还是移动到答案?我将添加答案。