使用iframe中的父窗体捕获点击

Capture clicks with parent form from iframe

本文关键字:窗体 iframe 使用      更新时间:2023-09-26

我有一个带有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>

这可能吗?

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");
    });
});

不确定,但如果帧源在同一原点:,这可能会帮助您使用.contents()

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

我注意到你已经分配了一个id,并且你正在用class引用那个帧。

您的myiframeid而不是class。。使用id选择器#

试试这个

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