2

ページ内のボタンイベントを検出したいのですが、background.htmlからscript.jsの強力なテキストファイルを挿入します。ボタンがクリックされたときに、ボタンに作業を任せるよりもメッセージを警告したいと思います。質問が2つあります。

1. srcript.jsでjqueryを使用しようとしましたが、機能しないようです。background.htmlにjqueryファイルを含めましたが 、.jsファイルでjqueryを使用するにはどうすればよいですか?

2.クリックされたときにボタンイベントを検出する方法は?

以下は私のコードです:

background.html

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>

<script>
  chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(null,{file:'script.js',allFrames:true});
  });
</script>

script.js

if( self.frameElement && self.frameElement.tagName == "IFRAME" ){
  $(":button").bind("click",function(){
    alert("iframe button");
  });
}
else{
  $(":button").bind("click",function(){
    alert("parent button");
  });
}
4

1 に答える 1

7

スクリプトの jQuery が機能しない理由については、jQuery を に含めたためbackground page、ユーザーのページの拡張機能の世界にそれをロードする必要があります。明確にするために。あなたscript.jsはユーザーのページにロードされるはずです。Chrome はページに読み込まれますが、isolated worldそのページの拡張機能の世界です。のように、そのページに jQuery をロードする必要がありますscript.js。以下のように:

<script>
    chrome.browserAction.onClicked.addListener(function(tab) {
        chrome.tabs.executeScript(null,{file:'jQuery.js',allFrames:true});
        chrome.tabs.executeScript(null,{file:'script.js',allFrames:true});
    });
</script>

ボタンのクリック音を聞くことに関する他の質問については、どのボタンについて話しているのか、あなたの質問からはわかりません。ブラウザのアクションボタンですか?その場合、コードは問題なく動作します。background.htmlそれがユーザーの DOM 上のボタンである場合、クリック イベントをリッスンして拡張機能 ( ) に通知する上記のスクリプトを追加する必要があります。これにより、backgroundページがスクリプトをロードします。

于 2012-05-08T07:43:54.530 に答える