2

特定のページ内の iframe 内からいくつかの DOM 要素を削除できる Google Chrome 拡張機能を作成するために必要なすべてのコンポーネントと手順を知りたいです。

私の調査では、同一オリジン ポリシーにより、一般的な JavaScript ではこれが不可能であることが示されています。

Chrome のコード インスペクションから DOM 要素を手動で削除することは、私が得た限りではありますが、これを自動化したいと考えています。

他の同様の質問 (主にthis one ) から、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();

もちろん機能しません。

4

1 に答える 1

6

私は私が望んでいたことを達成したので、ここに答えがあります。

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 を実行できます。

に移動chrome://extensions/して、解凍された拡張機能をロードするかパックします。

スクリプトを実行する拡張機能を取得する方法は他にもあることに注意してください。これは、私が最も簡単な方法として最終的に得たものです。

于 2013-04-22T23:26:47.213 に答える