11 июля 2009 :Iframe против Object, когда использовать?Кто-то знает, а кто-то нет, что в существует 2 способа вставить одну html страницу в содержимое другой - это iframe и object, результат будет примерно одинаков. <iframe src="sample_js.html" width="500" height="300" frameborder="0"></iframe> <object type="text/html" data="sample_js.html" width="500" height="300"></object> Некоторые, исследуют какую-то чушь, пытаясь понять как избавиться от полосы прокрутки и рамки у объекта в IE (зачем-то меняя доктайп). Хотя можно либо добавить CSS в включаемый документ:
<style>
/*Style for IE object*/
html { overflow: auto; border: none;}
</style>
либо почитать спецификацию W3C о фреймах «Implementing HTML Frames», где сказано что через <param> можно применять аттрибуты как у iframe, в результате:
<IFRAME src="foo.html" width=400 height=500 scrolling=auto
frameborder=1>
that unfortunately your user agent doesn't support. Alternatively you
can get the related document <a href="foo.html">here</a>.
</IFRAME>
Становится: <OBJECT src="foo.html" width=400 height=500> <PARAME name=scrolling value=auto> <PARAME name=frameborder value=1> that unfortunately your user agent doesn't support. Alternatively you can get the related document <a href="foo.html">here</a>. </OBJECT> Когда использовать ObjectТега Iframe нету в спецификации HTML 4.01 Strict, поэтому чтобы добиться валидности (если это кого-то волнует) в этом режиме нужно использовать его. Когда использовать IframeК сожалению тег Object не обеспечивает javascript взаимодействие между parent и child документами в IE (всех версий). А это 95% случаев когда мне надо его использовать. Поэтому альтернативы iframe в этом нет. Желающие могут убедиться проверив следующие примеры в IE и других браузерах. Пример использования Object (яваскрипт не работает в IE) Код который используется в подгружаемом файле
var a=parent.document.getElementById('test');
alert(window.parent.document.title);
a.innerHTML='Яваскрипт работает';
Поэтому если вам надо использовать JS, то либо используйте HTML 4.01 Transitional, либо просто наплюйте на валидность, браузеры всё равно будут отображать iframe даже в strict. А лучше всего конечно будет использовать HTML5, который всегда в строгом режиме, и разрешает тег iframe. Если кто-то скажет как всё-таки получить из дочернего фрейма в object содержимое или переменную из родительского элемента (и изменить), я буду очень признательна. |
Либо волшебно используйте ваш логин в Google, Яндекс, рамблер или ЖЖ чтобы войти через Open_ID

Комментарии:
igrek.59rd@ (Igor Baranov)
27.01.2010 03:23:05
Moony (Елена Лунная)
27.01.2010 12:09:13