gui*_*ler 2 iframe google-chrome-extension
我想知道创建Google Chrome扩展程序所需的所有组件和步骤,该扩展程序将能够从特定页面的iframe内部删除某些DOM元素。
我的研究表明,由于具有相同的来源政策,因此无法通过通用JavaScript来实现。
据我所知,在Chrome浏览器中从代码检查中手动删除DOM元素是可行的,但是我想实现自动化。
从其他类似的问题(主要是这个问题)看来,Chrome扩展程序应该可以做到这一点。我认为这是最相似的问题,但尚未得到答复,也不清楚。
老实说,我可以从这里接受它,但是我认为即使我最终回答自己,其他人也可能会从这个问题和答案中受益。
HTML示例:
<!DOCTYPE html>
<html>
<body>
<iframe src="iframe.htm"></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
和iframe.htm:
<!DOCTYPE html>
<html>
<body>
<div id="targetDiv"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
最终结果应与运行(使用jQuery)相同:
$('#targetDiv').remove();
Run Code Online (Sandbox Code Playgroud)
哪个当然行不通。
我完成了我想要的,所以这就是答案。
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
}
]
}
Run Code Online (Sandbox Code Playgroud)
它具有一些不言自明的值,然后具有permissions和content_scripts。基本上说,此扩展名仅在访问target-site.com时有效。我们指定要运行的文件,然后设置"all_frames": true,该文件将为页面中的每个帧运行。
当然,您可以在清单中引用的文件中运行所需的任何javascript。
导航至chrome://extensions/加载解压缩的扩展程序或对其进行打包。
请注意,还有其他方法可以扩展运行脚本。这就是我最终获得的最简单的方法。
| 归档时间: |
|
| 查看次数: |
2388 次 |
| 最近记录: |