访问嵌入文档的元素

时间:2014-02-16 16:21:09

标签: javascript jquery html iframe

我希望能够从嵌入式vimeo视频中访问类。我的iframe看起来像这样:

HTML

<iframe id="vimeo" src="//player.vimeo.com/video/85509673?portrait=0&amp;badge=0&amp;color=a82a2a" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>  

我正在尝试向play-button-cell类添加点击事件,如下所示:

的jQuery

var embeddedContent = $("#vimeo");
console.log(embeddedContent);
var doc = embeddedContent.contentDocument; // get the inner DOM
console.log(doc); 
console.log(doc.jQuery(".play-button-cell"));

doc.jQuery(".play-button-cell").click(function(){
    alert('ok!');
});  

我在控制台中收到以下错误消息:

Uncaught TypeError: Cannot call method 'jQuery' of undefined

play-button-cell确实存在,因为当我在播放按钮上“检查元素”时,我可以看到它。 如何访问嵌入内容中的类?这可能吗?

DEMO

1 个答案:

答案 0 :(得分:1)

除非:

,否则不可行
  1. 您的网页托管在vimeo.com或
  2. vimeo.com允许您的域名执行跨域互动。
  3. 出于安全原因这样做 - 想想......访问一个人托管的页面。将这个人放在他们博客上的IFRAME中,使用JavaScript在你的行为上发布Facebook状态 - 这很糟糕,不是吗?

    此安全措施称为同源策略(出于安全原因。)您可以在此处找到更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript

    P.S。如果您调试代码,您应该看到$('#vimeo')。contentsDocument返回NULL(或者抛出异常取决于您使用的浏览器。)