質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

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

Q&A

1回答

1849閲覧

Chrome の拡張機能で関数が呼び出せません

aki_0530

総合スコア4

JavaScript

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

1グッド

0クリップ

投稿2021/09/10 10:33

編集2021/09/10 10:36

manifest.jon

json

1{ 2 "name": "test", 3 "description": "", 4 "version": "0.1", 5 "manifest_version": 3, 6 "permissions": [ 7 "activeTab", 8 "scripting", 9 "clipboardWrite" 10 ], 11 "background": { 12 "service_worker": "test.js" 13 }, 14 "action": { 15 "default_icon": "img/icon.png" 16 } 17} 18

onClickedaddLisenerで呼び出した関数内で別の関数(a)を呼び出そうとすると「Uncaught ReferenceError: a is not defined」というエラーが表示されます
ローカルの環境やpaizaでは実行できたのでjsの構文ではなくchromeの拡張機能の環境によって起こっているものだとは思うのですが解決方法がわかりません

test.js

JS

1function test() { 2 a("OK?"); 3} 4 5function a(b) { 6 console.log(b); 7} 8 9chrome.action.onClicked.addListener((tab) => { 10 chrome.scripting.executeScript({ 11 target: { tabId: tab.id }, 12 function: test 13 }); 14}); 15
PuppyChildren👍を押しています

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

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

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

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

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

itagagaki

2021/09/10 11:32

chrome://extensions/ でそのインストールした拡張機能のところにエラーボタンが出ていないですか?
guest

回答1

0

公式のドキュメントに書いてありますね。

https://developer.chrome.com/docs/extensions/reference/scripting/#runtime-functions

This function will be executed in the context of injection target. However, this will not carry over any of the current execution context of the function. As such, bound parameters (including the this object) and externally-referenced variables will result in errors.

対処法もこの段落のあとに載っています。

投稿2021/09/10 17:42

int32_t

総合スコア21695

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問