2014-02-16 83 views
0

我希望能夠從嵌入式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> 

我想要一個click事件添加到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

實在不行,可以,除非:

  1. 您的網頁託管在vimeo.com,或
  2. vimeo.com讓您的域中執行跨域交互。

這是出於安全原因 - 想想...訪問一個人託管的頁面。而在IFRAME上放置他們博客的人,使用JavaScript在你的行爲上發佈Facebook狀態 - 這很糟糕,不是嗎?

這種安全性措施被稱爲同源策略,您可以在這裏找到更多的信息(出於安全原因):https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript

附:如果你調試了代碼,你應該看到$('#vimeo')。contentDocument返回NULL(或者拋出一個異常取決於你使用的瀏覽器。)