30

現在、Chrome 拡張機能を作成しています。元のページ(タブ)に定義されているJS関数をChrome拡張機能から呼び出したい。それらを呼び出すかどうbackground.htmlかは関係ありません。Content_Script

例えば:

元のページ(タブ)

<html>
<head>
<title>Original Page</title>
<script>
function greeting(){
    alert("Ohayou!");
    // some other codes here
}
</script>
</head>
<body></body>
</html>

次に、Google Extensions から、元のページの関数「greeting」を呼び出したいと思います。どうすれば上記を行うことができますか?

4

2 に答える 2

35

コンテンツスクリプトに簡単に書き込むこともできます。

location.href="javascript:greeting(); void 0";
于 2012-11-11T18:16:50.033 に答える
15

最初の部分では、この素晴らしい答えを使用できます:コンテンツ スクリプトを使用してページ コンテキストにコードを挿入します

コンテンツ スクリプトで関数を呼び出すのは簡単です。コンテンツ スクリプトでリッスンできる独自のイベントを作成できます。これは次のように機能します。

注入されたコード:

var evt = document.createEvent('Event');
evt.initEvent('myCustomEvent', true, false);

// fire the event
document.dispatchEvent(evt);

コンテンツスクリプト:

document.addEventListener('myCustomEvent', function() {
  // do whatever is necessary
});
于 2012-11-08T16:14:33.047 に答える