Не удается сбросить iframe.style.height успешно с помощью jS в IE8

#javascript #javascript-events #css

#javascript #css #dom-события

Вопрос:

У меня есть следующий фрагмент кода JavaScript:

 var urlpxExt = document.getElementById('urlPx');
urlpxExt.style.height = "200px";
  

Это очень общий способ сбросить высоту стиля iframe, моя проблема в том, что высота iframe ‘urlPx’ не сбрасывается успешно в IE8, размер iframe не изменяется при моем просмотре экрана IE, затем я попытался предупредить urlpxExt.style.height после строки urlpxExt.style.height = "200px" , оно выдает значение, которое не было изменено.

Если я добавлю какой-нибудь трудоемкий процесс, например alert before urlpxExt.style.height = "200px" . затем значение будет успешно сброшено.

Кто-нибудь знает, почему со мной это произошло? Как решить?

Комментарии:

1. Не могли бы вы попытаться воссоздать свою проблему либо в jsFiddle , либо в JS Bin ?

2. Похоже, ваш urlPx элемент еще не загрузился. Попробуйте обернуть свой JavaScript в, $(document).ready если вы используете jQuery, или window.onload если вы этого не делаете.

3. Он уже полностью загружен. Я попытаюсь воспроизвести jsbin.com/omodi5/edit но я не уверен, что это будет воспроизводимо там.

4. Вы пытались переместить свой скрипт в нижнюю часть страницы?

5. Попробуйте вывести данные urlpxExt на консоль с помощью console.log(urlpxExt) сразу после его определения. Кроме того, вам, вероятно, следует использовать onload событие вашего iframe вместо onload события документа.

Ответ №1:

Возможно, IE8 обрабатывает ваш iframe как встроенный элемент текстового уровня (для которого height стиль не может быть указан. Попробуйте установить для display свойства CSS для вашего iframe значение block и посмотреть, не устранится ли ваша проблема.

Также помните, что элемент iframe поддерживает height атрибут HTML, что означает, что вы должны иметь возможность установить его с помощью iframeElement.height = [number] .