#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]
.