で特定のボタンにonclickのイベントを追加します。ページ-MOD(Firefoxのアドオン)私はアドオンビルダーとFirefoxのアドオンを開発しようとしている
私は、Webベースのメーラのメールエディタを変更したいです。 (次のコードではYahoo!のメールサービスで試しています)
ユーザーが[送信]ボタンを押したときに特定のコードを実行します。
アドオンコードは次のとおりです。
main.js
var self = require("self");
var pageMod = require("page-mod");
pageMod.PageMod({
include: "*.mail.yahoo.co.jp",
contentScriptWhen: 'end',
contentScript: "document.getElementById('send_top').setAttribute('onclick', 'alert(\"blabla\")');"
});
電子メールエディタページでボタン:
<input id="send_top" class="inputbutton" type="submit" title="Submit an email"
value="Submit" name="action_msg_send" accesskey="9">
ユーザーがボタンを "送信" するとき、私は、ダイアログを表示したいです。
ありがとうございました。 私は、スクラッチパッドで正常にダイアログが表示されたそれを試してみましたが、私はcontentScriptでコードを書いたとき、それが動作していないようです。 (ダイアログは表示されません) あなたの例は正しく働いています。 –
JSエラーを検索すると、コードが機能していないことがわかります。たとえば、クリックイベントをバインドしようとしている要素が、JavaScriptによって作成された可能性があるため、ページが読み込まれた直後に存在しないことがあります。 – canuckistani
おっと...あなたが指摘するまでエラーコンソールを見つけられませんでした... とにかく、あなたが言ったように、構成ページはJavaScriptによってロードされているようです。エラーコンソールに次のエラーが表示されます: TypeError:document.querySelector 「#send_top」)は nullのアドオンは、メール作成ページが、インデックスページをロードしていないようです。 コンポジションページにはURLに#_pg =アンカーを作成しています。このアンカーを削除すると、インデックスページが表示されますが、#send_top IDを持つ要素はありません。 –