最近、Google Chrome の拡張機能を作成していますが、マニフェスト バージョン 2 には、作成した html ファイル内でイベント ハンドラー (onclick、onmouseover、ondblclick など) を使用できないと書かれています。リンクしているスクリプトでそれらを作成できると言っています。唯一の問題は、アイコンをクリックすると、実際の div 要素をクリックする前に関数が実行されることです。私は何が間違っていたのか本当に混乱しているので、いくつかの方法で試しました:
私のmanifest.jsonファイルは正常に動作しているようです。エラーは発生せず、リンクされたすべてのページとicon.pngファイルは機能します。
{
"name" : "Test",
"version" : "1.0",
"manifest_version" : 2,
"description" : "Trying it out",
"browser_action" : {
"default_icon" : "icon.png",
"defalut_title" : "Test",
"default_popup" : "popup.html"
},
"chrome_url_overrides" : {
"newtab" : "newtab.html"
}
}
これが私が popup.html ファイルに入れたものです:
<html>
<head></head>
<body>
<div id="submitButton">Submit!</div>
</body>
</html> <!-- The rest of the code is unnecessary since it is not used as for now -->
<script type="text/javascript" src="popup.js"></script>
私のpopup.jsファイルには次の機能があります:
var sButton = document.getElementById('submitButton');
sButton.addEventListener('onclick',alert('This is not supposed to happen until I click the div'),false);
//I also put the alert in a function like so: function() {alert('what it said')}
この方法がうまくいかないことに気づいた後、私はこれに行きました:
sButton.onclick = function() {alert('same thing')}
どちらの方法でも、拡張機能のアイコンをクリックすると警告が表示され、popup.html も実行されませんでした。関数を追加する必要があるかどうかはわかりませんが、これは初めてなので(最初の拡張機能)、特別なクロムメソッドなどを追加する必要があるかどうかはよくわかりません。Google Dev ページを調べましたが、役に立ちませんでした。基本的なことだけを教えてくれました。
事前に感謝します。