我想知道所有的组件,并创建一个谷歌Chrome浏览器扩展,将能够从一个iframe中的某一页中删除一些DOM元素所需的步骤。
我的研究表明,这是不可能通过共同的javascript由于同源策略。
手动从Chrome的代码检查卸下的DOM元素是据我得到的,但我想自动执行此。
从其他类似的问题(主要是这一个 ),看来Chrome扩展程序,应该是能够做到这一点。 我相信这是最相似的问题,但一直没有得到答复作为然而,也并不清楚。
坦率地说,我可以把它从这里,但我认为其他人可能会受益于这个问题和答案,即使我最终回答自己。
例如HTML:
<!DOCTYPE html>
<html>
<body>
<iframe src="iframe.htm"></iframe>
</body>
</html>
和iframe.htm
:
<!DOCTYPE html>
<html>
<body>
<div id="targetDiv"></div>
</body>
</html>
最终的结果应与运行(使用jQuery):
$('#targetDiv').remove();
这当然是行不通的。
我完成了我想要的东西所以这里的答案。
你需要的Chrome扩展的第一件事就是清单文件, manifest.json
。 这是一个工作示例:
{
"manifest_version": 2,
"name": "iframe manipulation extension example",
"description": "This extension allows to run scripts that manipulate cross domain IFRAME contents.",
"version": "1.0",
"permissions": [
"*://target-site.com/*"
],
"content_scripts": [
{
"matches": [
"*://target-site.com/*"
],
"js": ["script.js"],
"all_frames": true
}
]
}
它有一些不言自明的值,然后permissions
和content_scripts
。 它基本上说,访问target-site.com当这个扩展只会工作。 我们指定我们要运行,并设置文件"all_frames": true
,这将运行所述文件在页面每一帧。
当然,你可以运行任何你在文件中需要的JavaScript / s的你在你的清单中引用的。
导航到chrome://extensions/
加载你正在开发的扩展或包装。
请注意,还有其他的方式来获得的扩展,运行的脚本。 这正是我结束了最简便的途径。