元ページ側の onchange を発火できなくてハマったのでメモ


original.html
<select name="hoge" onchange="fuga()">
</select>

(jQUeryで)うまいことfuga関数をChromeExtensionから発火させたい。

contentscript.js
//こういった書き方では実行できない。
$('select[name=hoge]').change();

セキュリティ的には当然。
じゃあどうするか。

contentscript.js
//ダミーボタン作って
var tag = '<button type="button" id="myDummyButton" style="display: none;" onclick="fuga()">';

//追加して
$('form[name=piyo]').append(tag);

//発火
$('#myDummyButton').click();

うごいちゃうけどこれいいの?