这很奇怪,但Chrome扩展程序正在加载iframe中的内容文件。我在内容脚本匹配中有<all_urls>
,我将其切换为"http://*/*", "https://*/*"
。这非常奇怪,因为即使iframes
iframe's
不适合该匹配,它仍在src
内部加载页面。
我找到了一个脚本来检测某个对象是否已加载到iframe
,现在内容脚本不会影响谷歌广告或其他广告,但尤其是当我的扩展程序开启时,jsfiddle不起作用。 / p>
我不想发布代码,所以请告诉我需要发布的代码。
似乎它唯一有效的时间是内容脚本有一些无效的代码并且根本没用。
所有扩展程序都这样做吗?我该如何解决?什么代码可能会这样做?
提前非常感谢你。
清单:
{
"name": "NA",
"version": "1.0.9",
"manifest_version": 2,
"description": "NA",
"browser_action":{
"default_icon": {
"19": "img/icon19.png",
"38": "img/icon38.png"
},
"default_popup":"popup.html"
},
"permissions": [
"storage",
"tabs",
"contextMenus"
],
"background":{
"scripts":["background.js"]
},
"icons": {
"16": "img/icon16.png",
"48": "img/icon48.png",
"128": "img/icon128.png"
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["scripts/jquery-for-content-only.js","scripts/content.js"],
"run_at": "document_end",
"all_frames": true
}
]
}
答案 0 :(得分:2)
Chrome扩展程序清单文件确定内容脚本的运行方式和位置,不仅仅是在URL模式匹配方面,还包括它们是否适用于父页面下方的框架:
来自Google's "Content Scripts" documentation:
名称:all_frames
输入:boolean
描述:
可选。控制内容脚本是在匹配页面的所有帧中运行,还是仅在顶部帧中运行。
默认为false,表示只匹配顶部框架。
由于您将此属性设置为true,因此您的脚本在iframe中运行。将此属性设置为false,或将其删除,然后脚本应仅在父页面中运行。