iframe onload функциясы анықталмады

Мен Rails қосымшасын әзірлеймін. Бір функция клиенттерге HTML парақтарын алдын-ала қарау мүмкіндігін береді. Алдын ала қарау контейнерінің CSS/стилі алдын ала қараудың CSS/стилін бөліп алу үшін IFRAME-де бұл алдын-ала қарауды жүктеп отырмын. Әзірге бұл өте жақсы жұмыс істейді.

Мәселе жүктелгеннен кейін IFRAME автоматты түрде өзгертіледі. Мен бұл функцияны jQuery арқылы IFRAME load оқиғасына қосу арқылы ғана жұмыс істеймін.

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-де өте жақсы жұмыс істемейді, алайда - бірінші бет жүктелген кезде оқиға болмайды.

Мен бір функцияны IFRAME төлсипатының onload атауына тікелей функция тағайындауды қалаймын:

 <iframe onload="show_preview();" ...></iframe>

Мәселе мына жерде: IFRAME менің JavaScript файлымда анықталған болса, show_preview() функциясын таба алмайды. Егер функцияны шығарып алсам, оны SCRIPT белгісіне IFRAME үстінен қойсаңыз, барлығы жақсы жұмыс істейді.

Кез-келген көмекті бағалаңыз, өйткені мен сүйекке ұқсас нәрсе жасаймын.

Макс

2

1 жауаптар

Функцияны терезе нысанына тіркеңіз, содан кейін ол html-кодта көрінеді:

window.show_preview = function() { ... }
2
қосылды
Керемет - рахмет
қосылды автор maxenglander, көзі