1

jquery ファイルへの参照を持つ chrome 拡張機能があります。
これは私のポップアップhtmlです(ヘッドタグのみ):

<head>
    <title>My Extention</title>
    <script type="text/javascript" src="http://www.MySite.com/Resources/JS/JQuery/jquery-1.7.2.min.js"></script>
    <script type="text/javascript" src="MyExtensionScript.js"></script>
</head>

そのため、「MyExtensionScript.js」ではjqueryを使用できると思っていましたが、明らかに$関数が定義されていません。
これは私のmanifest.jsonファイルです:

{
  "name": "My Test Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "Test version of My Extension",
  "browser_action": {
    "default_icon": "test.ico",
    "default_popup": "Test.html"
  },
  "permissions": [
    "cookies",
    "tabs",
    "<all_urls>"
  ]
}

マニフェストのバージョン 1 では機能していましたが、現在は機能していません。「web_accessible_resources」を使用して「http://www.MySite.com/Resources/JS/JQuery/jquery-1.7.2.min.js」を追加しようとしましたが、それも機能しませんでした。何か案は?
また、現在のページに挿入されたスクリプトがあり、メッセージを返します (私の場合、現在のページの HTML ソース)。この動作は、マニフェスト バージョン 2 への移行によって影響を受けますか? 皆さんありがとう :)

編集:クロス ドメイン スクリプティング (JSONP を使用) を有効にする Web アプリケーションがあります。私の拡張機能には、$.getJSON を使用してサイト内の Web サービスを呼び出すスクリプトがありました。今は機能しません。新しいマニフェスト バージョンに関係していることは確かですが、クロス ドメイン スクリプティングを再度有効にするにはどうすればよいですか?

4

2 に答える 2

4

サイトから参照するのではなく、拡張機能にローカルに保存されている jQuery ファイルを使用する必要があります。

これは、インライン コードを使用せずにローカル スクリプトの実行のみを許可する Chrome の厳格なコンテンツ セキュリティ ポリシーによるものです。

Web アクセス可能なリソースは、拡張機能がアクセスできる Web 上のリソースではなく、Web からアクセスできる拡張機能内のファイルです。たとえば、拡張機能に保存されている画像を使用してページの背景画像を変更したい場合は、その画像をweb_accessible_resoucesマニフェストのリストに追加する必要があります。

マニフェスト バージョンの変更は、許可されなくなったことを行わない限り、コンテンツ スクリプトに影響を与えるべきではありません。Chrome manifestVersionドキュメントから、他に何が変更されたかを確認できます。

于 2012-08-05T07:19:23.833 に答える
1

コンテンツ スクリプトに jquery を含めるだけです。スクリプトの前に必ずロードしてください。

{
  "manifest_version": 2,
  "default_title": "Babble",
  "version": "1.2",
  "description": "Chat in your language with friends in their language",
  "default_locale": "en",
  "default_icons": {
    "16": "img/icon16.png",
    "48": "img/icon48.png",
    "128": "img/icon128.png"
  },

  "content_scripts":[
    {
        "matches": ["http://mail.google.com/*", "https://mail.google.com/*"],
        "css" : ["css/style.css"],
        "js" : ["js/jquery.js" , "js/translate.js" , "js/jquery.cookie.js"]
    }
  ]
}
于 2012-09-08T18:16:22.733 に答える