2011-05-12 72 views
4

現在,我有一個從外部頁面讀取的jQuery UI彈出對話框。此頁面通過流式播放器從另一個具有視頻的外部進行讀取。自適應iFrame高度

我使用的iframe嵌入在第一視頻:

<div id="donkeyVideo"> 
<iframe id="iframeDonkey" width="100%" height="496" src="../../../../video/donkey-2009-02-23.html" frameBorder="0"></iframe> 
</div> 

寬度似乎有100%的所有權利,但100%的高度不起作用。有沒有解決的辦法?

我在哪裏以及如何嵌入代碼,以及ID的東西。請任何人,幫忙?

+0

您是否嘗試從父頁面或子頁面設置iframe高度? – 2011-05-12 02:14:12

+0

我不知道。該視頻位於(示例)video.html中,上面的代碼位於index.html中。索引從視頻中讀取。 – Ricky 2011-05-12 02:43:45

回答

2

如果您想使用100%而不是像素值,則必須使用某種JavaScript來動態調整iframe的高度。

不幸的是,我的理解是,你不能動態地改變指向與你自己不同的域的iframe的高度。

從失在代碼:

jQuery : Auto iFrame Height

請注意,這個jQuery autoHeight插件將無法藉助iframe從自窗口對象從起源不同的域或遠程地點訪問內容合作由於JavaScript安全限制,不能從當前的域訪問不同的域。

0

,如果你不想使用jQuery插件,你可以簡單地使用我已經在我的Facebook發佈說明的方法(https://www.facebook.com/antimatterstudios/posts/10151007211674364做)

你有一個IFrame,你想自動設置高度,因爲你正在從你的另一個網站託管一個頁面。

不幸的是,IFrame無法取得您正在加載的內容的高度,除非您放置高度,否則它將顯示默認高度或根本沒有高度。這很煩人。

我爲您提供瞭解決方案,它只適用於最新的標準支持瀏覽器,但也適用於IE8,因此對於99%的用戶來說,它是完美的。

唯一的問題是你需要在iframe中插入一個javascript,如果你正在加載的內容屬於你,這很容易,你可以打開你正在加載的內容並將javascript放入內容中。

在你的網站,你需要一段JavaScript可以「從IFrame中收到一條消息」,像這樣

jQuery(document).ready(function(){ 
    jQuery(window).bind("message",function(e){ 
     data = e.data || e.originalEvent.data; 
     jQuery("iframe.newsletter_view").height(data.height); 
    }); 
}); 
在iframe中的內容

,在最底層添加此,可能它的確定只是做類似「$模板$的javascript」使用PHP或東西,即使JavaScript是不是我使用jQuery的標籤

<script type="text/javascript" src="jquery-1.7.1-min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    parent.postMessage({ 
     height:$(document.body).height()+50+"px" 
    },"*"); 
}); 
</script> 

顯然裏面,你沒有,它只是更容易,也許你是使用它,所以省去了麻煩。

如果你這樣做,當的iframe加載時,它會發出一個信號回父窗口,這將基於內容:)

的長度調整的iframe我相信你可以弄清楚如何改變這些小事情,但那就是我正在使用的方法