これは無実の問題だと思っていますが、実際にまだ答えはわかりません。イベントバブリングがIFrameで発生しない
イベントのバブリングは、イベントを意図したターゲットに誘導します。このように動作します。ボタンがクリックされ、イベントがボタンに向けられます。そのオブジェクトに対してイベントハンドラが設定されている場合、イベントがトリガされます。そのオブジェクトにイベントハンドラが設定されていない場合、そのイベントはオブジェクトの親に対してバブルアップします(水中のバブルのような)。
HTML部分
<div>
<iframe>
<a>Clickable fdf Area</a>
</iframe>
</div>
javascriptの一部
$('div iframe').load(function(){
var iframeBody = $(this).contents().find("body");
iframeBody.html("<a href='www.google.com'>clickable area</a>");
iframeBody.on("click", "a", function(){
alert(22222);
});
document.getElementsByTagName("div")[0].addEventListener("click", function(event){
alert(11111);
}, true);
});
$('iframe').attr("src","JavaScript:'iframe content'");
私の質問は明らかです。 iframe 'a'タグをクリックしようとすると、警告(11111)が表示されないのはなぜですか? なぜイベントバブリングが開催されていないのですか?コードを読んでいるイベントにアクセスする方法は何ですか?
これは、同一生成元ポリシーの結果であることは承知しても、それはメッセージパッシングでない限り、あなたは別のドメインからのコードと通信することはできません。 –
私の質問ははっきりしています。なぜ私はアラート(11111)を取得していないiframe 'a'タグをクリックしようとすると? –