Firefox 拡張機能を開発しています。
そして、拡張機能でいくつかの js を Web ページに挿入しました。これらの js が実行され、拡張機能にデータが転送されます。
たとえば、私は注射します
function example(srcElement, action) {
var event = document.createEvent('Events');
event.initEvent('example', true, true);
var o = {};
o.actionName = action;
srcElement.setUserData('exampleData', o, null);
srcElement.dispatchEvent(event);
}
その間、拡張側のリスナーをドキュメントに追加します。
次に、関数の例が実行されると、拡張リスナーが呼び出され、データと srcElement が取得されます。
質問: 現在、setUserData は廃止されており、データと要素を転送する方法はありません。
setUserData の置き換えは
Element.dataset
この API は文字列のみを転送できます。
それから私は試しました
window.postMessage
この API は配列とオブジェクトを転送できますが、要素は転送できません。
では、要素とデータの両方を転送するにはどうすればよいでしょうか?