二日悩んでいるので、質問させてください。
Thunderbird v78.12.0で アドオンを作るために調べています。
実現したいこと
下図の通りですが、message_display_actionで追加したボタンを押す直前にメール本文の一部文字列を選択しておき、
ボタンが押されたら表示するHTML画面のinput要素のデフォルト値として、設定したいです。
発生している問題・エラーメッセージ
下記エラーが発生しています。
Uncaught TypeError: document.getElementById(...) is null
試したこと
documentがpopup_message.htmlを示していると思い、messagepaneのdocumentを取得する方法を探していたのですが、
見つけられていません。
console.log( currentWindow.document.getElementById('messagepane').contentDocument.getSelection().toString() );
もエラーになりました。
現在のソース
(テストコードがごちゃごちゃで、より分かりづらいと思い、一部のみ記載します)
manifest.json
json
1 "message_display_action": { 2 "default_popup": "popup_message.html", 3 "default_title": "Add Task", 4 },
popup_message.html
html
1<!DOCTYPE html> 2<html> 3<head> 4 <script src="scripts/popup_message.js" type="text/javascript"></script> 5</head> 6<body> 7 <div id="popup-page"> 8 <div> 9 <div class="popup-input"> 10 <input type="text" id="task_content" placeholder="タスクの内容"> 11 </div> 12 <div class="popup-input"> 13 <input type="text" id="task_due" placeholder="今日"> 14 </div> 15 <div class="popup-input"> 16 <button type="button" id="task_add">Add Task</button> 17 </div> 18 </div> 19 </div> 20</body> 21</html>
popup_message.js
javascript
1function test() { 2 console.log( document.getElementById('messagepane').contentDocument.getSelection().toString() ); 3} 4document.addEventListener('DOMContentLoaded', function () { 5 document.getElementById('task_add').addEventListener('click', messageAddTask); 6 test(); 7});
あなたの回答
tips
プレビュー