Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Автоматический ресайз окна фрейма (https://javascript.ru/forum/events/33037-avtomaticheskijj-resajjz-okna-frejjma.html)

mcpro 08.11.2012 11:41

Автоматический ресайз окна фрейма
 
Есть страница, в которую вставляется фрейм.
<iframe name="fr" width="1024" height="800" frameborder="0" marginheight="20" marginwidth="30" src="/tariff/form/" id='frame_tariff'> </iframe>

на странице /tariff/form/ есть JS для автоматического ресайза окна фрема frame_tariff
width = $(document).width();
height = $(document).height();                top.document.getElementById('frame_tariff').setAttribute('width',width);                    top.document.getElementById('frame_tariff').setAttribute('height',height);

Все работает. Но не в 100% случаев, а только в 99 =(
то есть иногда ресайза не происходит. Подозрение, что в этом 1% случаев на момент выполнения
top.document.getElementById('frame_tariff').setAttribute('width',width);

браузер не знает о top.document.getElementById('frame_tariff')
Подскажите, плз, как сие исправить.

Маэстро 09.11.2012 18:15

А в каком браузере Вы проверяете?
top.document.getElementById('frame_tariff')
может и не сработать по требованиям безопасности, потому что не сработает top.document
попробуйте так:
document.getElementById('frame_tariff')

или с учетом того, что имя фрейма "fr" так:
top.fr
перед тем как делать
setAttribute('width',width);
убедитесь, что фрейм существует, например так:
var f=document.getElementById('frame_tariff');
if (!f)
alert('АВАРИЯ!!!');
else
{
f.setAttribute('width',width);  
}


Часовой пояс GMT +3, время: 00:45.