5

XMLrequestを取得して情報を取得し、それをブラウザアクションポップアップのhtmlページに書き込む拡張機能を作成しようとしています。これは可能ですか?

これが私のマニフェストファイルです

//manifest.json
"name":"myExtension",
"version":"1.0",
"manifest_version": 2,
"browser_action": {
    "default_icon":"favicon.ico",
    "default_popup": "popup.html"
}

私のブラウザアクションポップアップhtmlファイル:

<!--popup.html-->
<!DOCTYPE html>
<html>
<head>
    <title>My Title</title>
<script src="popup.js"></script>
<script src="jquery.min.js"></script>
</head>
<body>
    <p>Hello</p>
    <p class="add"></p>

</body>
</html>

そして私のスクリプト:

//popup.js

//Code up to this point gets xml info, I didn't include

var info = //string from xml request
$.(".add").html(info);

ポップアップウィンドウにHello段落が表示されますが、add段落にあるはずの情報が表示されません。コンソールを確認すると、$が未定義であることがわかります。jqueryを機能させるにはどうすればよいですか?私はこれに比較的新しいので、これが本当に単純で、私がそれを理解していないならば、すみません。

4

2 に答える 2

1

間違っている点がいくつかあります

  • スクリプトを追加する順序。そのはず:

    <script src="jquery.js"></script>
    <script src="popup.js"></script>
    
  • セレクターが間違っています。あるべきではありません$.(".add")$(".add")

    $(".add").html(info);
    
  • jQueryコマンドをDOMの準備完了/ロード時にラップする必要があります。

    $(function() {
      var info = //string from xml request
      $(".add").html(info);
    });
    

content_scriptsまた、スクリプトを使用しない場合は、スクリプトを追加する必要はありません。
バックグラウンドページとポップアップから拡張機能リソースに完全にアクセスできます。

于 2012-10-24T19:59:45.697 に答える
-1

あなたはそれをあなたのmanifest.jsonにそのように追加する必要があります:

content_scripts": [
 {
  "js": ["jquery.js"]
 }
]

その後、自動的に含まれます。jqueryが最初にロードされるように、jqueryの後にpopup.jsも配置します。以下のようなので:

"js": ["jquery.js", "popup.js"]
于 2012-10-24T19:10:12.530 に答える