2012-09-04 101 views
0

如何将点击事件分配给ifraem内的元素?如何将点击事件分配给iframe中的元素?

我开始了一篇文章,检测iframe是否被加载。

How can I detect whether an iframe is loaded?

和我有进一步的quesitons

如何分配一个事件或操作iframe中的元素?

我试过..

$(function(){ 
    $('#click').on('click', function(){ 
     var ifr=$('<iframe></iframe>', { 
      id:'MainPopupIframe', 
      src:'http://heera.it', 
      style:'display:none', 
      load:function(){ 
       $(this).show(); 
       alert('iframe loaded !'); 
      } 
     }); 
     $('body').append(ifr);  

    //when I click the home page button, nothing happen... 
    $('#menu-item-277').click(function(){ 
     alert('click!!!'); 
    }) 
    }); 
}); 
​ 

感谢您的帮助。

+1

你不能(根据大多数浏览器)。 –

+0

也许你应该尝试获取该页面的内容并自行追加。 –

回答

1

由于跨域安全限制(同源策略),如果iframe的内容存在于父页面以外的域中,则这是不可能的。

如果您有权访问这两个域,您可以尝试使用Ben Alman的优秀PostMessage等插件来设置跨域/跨浏览器iframe通信流。然后,您可以绑定到本地DOM元素的click事件,并向iframe发送一条消息,轮询循环可以侦听该消息,并触发iframe中的click事件。

我希望这会有所帮助。

相关问题