Я занимаюсь разработкой приложения на Rails.Одна особенность предоставляет клиентам возможность предварительного просмотра HTML-страниц.Я загружаю эти предварительные просмотры в IFRAME, чтобы CSS / стиль контейнера предварительного просмотра был отделен от CSS / стиля самого предварительного просмотра.Пока это работает довольно хорошо.
Одна проблема, с которой я столкнулся, - это автоматическое изменение размера IFRAME после его загрузки.У меня это отлично работает в Chrome, просто прикрепив функцию к событию load
IFRAME через jQuery:
var show_preview = function() {
$("#preview-loading").hide();
$(this).show();
this.style.height = this.contentWindow.document.body.scrollHeight + "px";
return this.style.width = this.contentWindow.document.body.scrollWidth + "px";
}
$(function() {
return $("#preview_frame").load(function() {
show_preview();
});
});
Это не очень хорошо работает в IE, однако - событие, кажется, несрабатывает при первой загрузке страницы.
Один из обходных путей, который я пытаюсь, - это назначить функцию непосредственно атрибуту onload
IFRAME следующим образом:
<iframe onload="show_preview();" ...></iframe>
Проблема Iу меня есть здесь, что IFRAME не может найти функцию show_preview()
, если она определена в моем файле JavaScript.Если я извлекаю функцию и помещаю ее в тег SCRIPT над IFRAME, все работает нормально.
Ценю любую помощь - уверен, что я делаю что-то с головой