Функция загрузки iframe не определена - PullRequest
3 голосов
/ 27 октября 2011

Я занимаюсь разработкой приложения на 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, все работает нормально.

Ценю любую помощь - уверен, что я делаю что-то с головой

1 Ответ

2 голосов
/ 27 октября 2011

Присоедините вашу функцию к объекту окна, тогда она будет видна в вашем HTML-коде:

window.show_preview = function() { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...