[解決済み] 拡張機能でonclickまたはinlineスクリプトが動作しない
2023-07-17 16:39:33
質問
これは最も簡単なことのように思えますが、うまくいきません。通常のブラウザでは .html と .js ファイルは完全に動作しますが、Chrome/Firefox 拡張モジュールでは
onClick
関数が本来の機能を果たしていません。
.jsファイルです。
function hellYeah(text) {
document.getElementById("text-holder").innerHTML = text;
}
.htmlファイルです。
<!doctype html>
<html>
<head>
<title>
Getting Started Extension's Popup
</title>
<script src="popup.js"></script>
</head>
<body>
<div id="text-holder">
ha
</div>
<br />
<a onClick=hellYeah("xxx")>
hyhy
</a>
</body>
</html>
つまり、基本的にユーザーが "hyhy" をクリックすると、 "ha" は "xxx" に変更されるはずです。そしてまた、ブラウザでは完全に動作しますが、拡張機能では動作しません。なぜかわかりますか?念のため、以下にmanifest.jsonも添付しておきます。
manifest.jsonです。
{
"name": "My First Extension",
"version": "1.0",
"manifest_version": 2,
"description": "The first extension that I made.",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"http://api.flickr.com/"
]
}
どのように解決するのですか?
Chromeの拡張機能では、インラインのJavaScript(
ドキュメント
).
Firefox WebExtensions も同様です (
ドキュメント
).
これと似たようなことをすることになります。
リンクにIDを割り当てる (
<a onClick=hellYeah("xxx")>
は
<a id="link">
となります)、また
addEventListener
を使用してイベントをバインドします。以下を
popup.js
ファイルに記述します。
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('link');
// onClick's logic below:
link.addEventListener('click', function() {
hellYeah('xxx');
});
});
popup.js
は別のスクリプトファイルとして読み込まれる必要があります。
<script src="popup.js"></script>
関連
-
[解決済み] ngModel' は 'input' の既知のプロパティではないため、バインドできません。
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
-
[解決済み] セルフクローズスクリプトエレメントが機能しないのはなぜですか?
-
[解決済み] addEventListenerとonclickの比較
-
[解決済み] RecyclerView onClick
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] node.jsで文字列のsha1ハッシュを取得するにはどうすればよいですか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] リダイレクトされずにHTMLフォームを送信する方法