0

私が見つけたものはすべてjQueryの注入を含んでいるようですが、jQueryはすでにページに存在しています(ブラウザのJSコンソールで使用できます)。Chrome拡張コンテンツスクリプトで既存のjQueryを使用しますか?

私は、機能を実行しているコンテンツスクリプトにメッセージを送信しているバックグラウンドスクリプトを持っています。その関数が実行されると私が取得:

Error in event handler for runtime.onMessage: ReferenceError: jQuery is not defined

は(私が試したの両方$とjQuery参照)

私はコンテンツスクリプトから既存のjQueryオブジェクトにアクセスすることができない理由を任意のアイデア?

+0

それを注入する必要がありますされますコードをWebページに挿入すると、コードがjquery initで待機する必要があります。しかし、拡張コード内のページからjqueryを使用しようとすると、chromeがWebページのスクリプトをあなたの内線と共有しないため、jqueryが機能しません。 – SEUH

+0

[クロムエクステンションでjQueryを使うにはどうすればいいですか?](@stackoverflow.com/questions/21317476/how-to-use-jquery-in-chrome-extension) –

+0

@ZigMandel複製には同意しないでください。 – Xan

答えて

2

この設計により、コンテンツスクリプトがページで

https://developer.chrome.com/extensions/content_scripts

However, content scripts have some limitations. They cannot:

  • Use chrome.* APIs, with the exception of:
    • extension (getURL , inIncognitoContext , lastError , onRequest , sendRequest)
    • i18n
    • runtime (connect , getManifest , getURL , id , onConnect , onMessage , sendMessage)
    • storage
  • Use variables or functions defined by their extension's pages
  • Use variables or functions defined by web pages or by other content scripts

を定義した変数/関数にアクセスすることを許可されていないため、一部のライブラリを使用したいのであれば、あなたの拡張機能があなたの場合は

+0

私はマニフェストのcontent_scriptsにローカルjqueryを追加しました。ドキュメントの準備時にDOMにdivを追加できますが、同じコンテンツスクリプト内の関数を実行するメッセージを送信する拡張機能ポップアップからボタンをクリックすると、依然としてjqueryには不満があり、$は存在しません。 これは何とか最後の点に関連していますか?それはコンテンツスクリプトですが、バックグラウンドJSからのメッセージから来ているので、コンテキストがありません。 – Kaitlyn2004

+0

@Kaitlynあなたの説明から言うのは難しい。この時点で新しい質問がおそらくより良いでしょう。 – Xan

関連する問題