2010-09-13 2 views
0

Прямо сейчас у меня есть объект IFrame с бесшовным атрибутом, который выглядит идеально,Cross браузер HTML5 плавающего фрейм

<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 i n IE с ненужной границей.

Возможно, у меня есть код с кодом? Может быть, моя DOM-манипуляция атрибутом frameBorder не отображается после document.ready?

ответ

2

Попробуйте добавить «frameborder» атрибут непосредственно в разметке ...

<iframe frameborder="0" 
+0

Ха, удивительный и забавный, просто наткнулся на это. Благодаря! – stephenway

+0

Теперь мне интересно, есть ли альтернативный способ получить этот атрибут в dom и сделать его рендерингом. jQuery и условные комментарии этого не делают. Желая, чтобы мой документ проверялся в HTML5, frameborder устарел. YIKES – stephenway

+1

Да, это, безусловно, устаревший атрибут. Я думаю, у вас есть выбор: валидация или правильная рендеринг. Я бы сказал, что выбор очевиден. –

1

Простите за мой английский, я использую этот код в скрипт JS

Это в головной секции

<!--[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); 

}); 

является preferible добавить скрипт в

jQuery(document).ready(function() 

небольшая проблема мало обновления, что решить с

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

использовал это, но приковал его: $ (копия) .attr ({frameborder: '0', прокрутка: 'no'}). ReplaceAll (this); – matpol

0

Если вы хотите, чтобы ваш документ для проверки в HTML5, вы можете использовать свой оригинальный метод. Вам нужно сделать несколько действий, чтобы заставить его работать в 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(); 
Смежные вопросы