iframe अधिभार समारोह अपरिभाषित

मैं एक रेल आवेदन विकसित कर रहा हूँ। एक सुविधा ग्राहकों को एचटीएमएल पृष्ठों का पूर्वावलोकन करने की क्षमता प्रदान कर रही है। मैं इन पूर्वावलोकन को IFRAME में लोड कर रहा हूं, ताकि पूर्वावलोकन कंटेनर का सीएसएस/स्टाइल पूर्वावलोकन के सीएसएस/स्टाइल से अलग हो। अब तक यह बहुत अच्छी तरह से काम करता है।

एक समस्या यह है कि IFRAME को लोड होने के बाद ऑटो-आकार बदल रहा है। मैं jQuery के माध्यम से IFRAME के ​​ लोड ईवेंट में फ़ंक्शन को जोड़कर क्रोम में यह बहुत अच्छा काम कर रहा हूं:

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 को मेरी जावास्क्रिप्ट फ़ाइल में परिभाषित किया गया है तो IFRAME show_preview() फ़ंक्शन नहीं ढूंढ सकता है। यदि मैं फ़ंक्शन निकालता हूं और इसे आईएफआरएएम के ऊपर एक एससीआरआईपीटी टैग में डालता हूं, तो सब कुछ ठीक काम करता है।

किसी भी मदद की सराहना करें - यकीन है कि मैं कुछ हड्डी का नेतृत्व कर रहा हूँ।

मैक्स

2

1 उत्तर

विंडो ऑब्जेक्ट पर अपना फ़ंक्शन संलग्न करें, फिर यह आपके एचटीएमएल कोड में दिखाई देगा:

window.show_preview = function() { ... }
2
जोड़ा
बहुत बढ़िया धन्यवाद
जोड़ा लेखक maxenglander, स्रोत