2010-09-13 198 views
0

現在我有一個無縫的屬性,它看起來很完美的iFrame對象,跨瀏覽器HTML5的iFrame

<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.google.com%2F&amp;layout=standard&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;height=35" seamless></iframe> 

與一對夫婦的CSS屬性

iframe { 
    overflow: hidden !important; 
    border: none !important; 
    width: 400px; 
    height: 35px; 
    background-color: #cce0da; 
    text-align: right; 
    padding-left: 20px; 
} 

然後爲Internet Explorer我有一些備用的屬性施加一些jQuery的

$(function() { 
    $('iframe', '.ie') 
    .attr('allowTransparency', 'true') 
    .attr('frameBorder', '0') 
    .attr('scrolling', 'no'); 
}); 

什麼我最終是一個透明的iFrame我n帶有不必要邊框的IE。

也許我的代碼存在問題?也許我的frameBorder屬性的DOM操作不會在document.ready之後渲染?

回答

2

嘗試將 「FRAMEBORDER」 直接在標記屬性...

<iframe frameborder="0" 
+0

哈,真棒和有趣,只是偶然發現了。謝謝! – stephenway 2010-09-13 17:37:40

+0

現在我想知道是否有另一種方法在dom中獲取此屬性並使其呈現。 jQuery和條件註釋不這樣做。爲了讓我的文檔在HTML5中驗證,frameborder已經過時。 YIKES – stephenway 2010-09-13 17:42:53

+1

是的,這肯定是一個棄用的屬性。我認爲你可以選擇:驗證或適當的渲染。我會說這個選擇很明顯。 – 2010-09-13 17:53:39

1

Scuse我爲我的英語,我在劇本JS

這HEAD部分使用此代碼

<!--[if lt IE 9]> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<script src="myscrip"></script> 
<![endif]--> 

這是我的腳本

jQuery("iframe").each(function() { 

    var copy = jQuery(this).clone(); 

    jQuery(copy).attr("frameborder", '0'); 
    jQuery(copy).attr("scrolling", 'no'); 

    jQuery(copy).replaceAll(this); 

}); 

jQuery(document).ready(function() 

小問題preferible添加腳本是如果你希望你的文檔中的HTML5來驗證,您可以使用原來的方法與

iframe css=display:none 
add in my script function .show after replaceAll 
+0

使用這個,但鏈接它:$(複製).attr({frameborder:'0',滾動:'否'})。replaceAll(this); – matpol 2012-11-06 09:06:22

0

解決小刷新。有幾件事你需要做,以使其在IE中工作< 9:

1)克隆iframe,設置屬性,然後追加到容器。或從頭開始創建iframe元素。 IE只是不會讓你以後設置屬性。

2)刪除原來的iframe。

$('#facebook-like iframe').clone().attr({ 'frameBorder': '0', 'allowTransparency': 'true', 'scrolling': 'no' }).appendTo('#facebook-like'); 
    $('#facebook-like iframe').first().remove();