0

iframe を含む親ページがあります。iframe 内には単一のタグがあります。親ページで、そのタグが押されたときにイベントを発生させることはできますか? イベントをキャプチャするJavaScriptをiframe内に配置すると機能することはわかっていますが、私のプロジェクトでは、親ページにイベントをキャプチャさせる必要があります。これはこれまでの私のコードです。親コード:

    <html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js" type="text/javascript"></script>
 <script type="text/javascript">
 var $MyFrame= $("#myiframe");
 $MyFrame.on("click", "a", function (e) {
         alert("hello");
     });
</script>
</head>
<body>
<iframe id="myiframe" height="3500" width="950" src="Iframe page" frameborder="0" style="display: block; margin: 10px auto;"></iframe>
</body>
</html>

これはiframeの私のページです:

<html>
<head>
</head>
<body>
<a href="www.google.com">Click Me!</a>
</body>
</html>

これは可能ですか?

4

3 に答える 3

0

確かではありませんが、これは.contents()フレームソースが同じオリジンにある場合に役立ちます:

 var $MyFrame= $("#myiframe");
 $MyFrame.contents().find('a').on("click", function (e) {
     alert("hello");
 });

idを割り当てて、そのフレームを で参照していることに気付きましたclass

于 2013-03-27T17:27:57.993 に答える
0

あなたmyiframeはそうではidありませんclass.. IDセレクターを使用してください#

これを試して

var $MyFrame= $("#myiframe");
$MyFrame.on("click", "a", function (e) {
     alert("hello");
});
于 2013-03-27T17:29:35.880 に答える
0
var $MyFrame = $("#myiframe");

// You need to wait for the iFrame content to load first
// So, that the click events work properly
$MyFrame.load(function () {
    var frameBody = $MyFrame.contents().find('body');
    frameBody.find('a').click(function () {
        // here is the iframe a click callback
        alert("hello");
    });
});
于 2013-03-27T17:32:32.750 に答える