我在Chrome扩展程序中多次将内容脚本注入同一页面时遇到了一些问题。

我正在从我的“ background.html”页面上的内容脚本中进行制表符更改: 通用标签

...等

在内容脚本中,我有一些console.log命令

问题在于,当我加载单个页面时,我看到每个日志在控制台中显示2-4次。

我很清楚这是由于页面内的iframe而发生的,我认为至少……我的问题是为什么?

我在文档中看到,默认情况下应将“ all_frames”(清单中的内容脚本权限数组)设置为“ false”,导致内容脚本仅注入到页面的顶部框架,但这是根本没有发生!

为什么要多次注射?我是否需要将“ all_frames”设置为假?

第二:

有没有办法判断扩展程序试图向其注入内容脚本的页面是iframe还是“ background.html”页面中的顶部?

我尝试过 通用标签

,发现它不能100%地工作。即使我在其余代码块中(在chrome.tabs.executeScript()附近)都有该条件,我仍然看到内容脚本多次注入....

任何想法或建议将不胜感激! :)

有帮助吗?

解决方案

每次标签状态更改时,都会触发

onUpdated 。这包括加载完成加载的时间,这解释了许多日志语句。 每次事件触发时,您都需要检查更改的内容(更改的URL,加载的URL等)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top