🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

Q&A

解決済

1回答

3979閲覧

Chrome拡張機能でバックグラウンドからDOMを操作したい

shori0128

総合スコア29

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Chrome extension

Chrome拡張機能

0グッド

1クリップ

投稿2019/11/18 10:21

編集2019/11/18 10:22

いつもお世話になっております。

chrome拡張機能による、HTML要素の取得をしたいと考えています。
具体的には、コンテキストメニューからのクリックイベントで発火させ、sendMessageで指示をcontent_scriptsにDOM操作をさせる流れです。

そこで以下のコードを記述しているのですが、下記エラーが出て解決できずに途方にくれています。。

Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.

コードは以下の通りです。

manifest.json

javascript

1{ 2 "name": "Context Menus Sample", 3 "description": "Shows some of the features of the Context Menus API", 4 "version": "0.6", 5 "permissions": [ 6 "contextMenus", 7 "activeTab" 8 ], 9 "content_scripts": [ 10 { 11 "matches": ["*://*/*"], 12 "js": ["contents.js"] 13 } 14 ], 15 "background": { 16 "scripts": [ 17 "background.js" 18 ], 19 "persistent": true 20 }, 21 "icons": { 22 "16": "images/outline_file_copy_white_16pt.png", 23 "48": "images/outline_file_copy_white_48pt.png", 24 "128": "images/outline_file_copy_white_128pt.png" 25 }, 26 "manifest_version": 2 27}

contents.js

javascript

1 chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { 2 sendResponse({ 3 "text": "ほげほげ" 4 }); 5 });

background.js

javascript

1function genericOnClick(info, tab) { 2 chrome.tabs.query({ 3 active: true, 4 currentWindow: true 5 }, function (tabs) { 6 chrome.tabs.sendMessage(tabs[0].id, { 7 text: "fire" 8 }, function (response) { 9 console.log(response); 10 }); 11 }); 12} 13 14chrome.contextMenus.create({ 15 "title": "sample menu", 16 "contexts": ["page"], 17 "onclick": genericOnClick 18});

chrome extensionの開発は初めてでもしかすると、間抜けな質問をしているのかもしれませんが、どなたかお分かりになるかた、ご教示いただけると助かります。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。
実行ページでページ再読み込みをしておらず、contents.jsが読み込まれてなかったことが原因だったようです。

投稿2019/11/18 22:58

shori0128

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問