浏览器扩展,以除去iframe内的DOM元素(Chrome extension to remove

2019-08-17 18:03发布

我想知道所有的组件,并创建一个谷歌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();

这当然是行不通的。

Answer 1:

我完成了我想要的东西所以这里的答案。

你需要的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
    }
  ]
}

它有一些不言自明的值,然后permissionscontent_scripts 。 它基本上说,访问target-site.com当这个扩展只会工作。 我们指定我们要运行,并设置文件"all_frames": true ,这将运行所述文件在页面每一帧。

当然,你可以运行任何你在文件中需要的JavaScript / s的你在你的清单中引用的。

导航到chrome://extensions/加载你正在开发的扩展或包装。

请注意,还有其他的方式来获得的扩展,运行的脚本。 这正是我结束了最简便的途径。



文章来源: Chrome extension to remove DOM elements inside iframes