我想设置iframe
匹配其内容的高度。但是,即使将iframe.contentWindow
放在undefined
中,它也会返回.load()
。这是完整的代码:
注意:iframe
的src
属性根据您单击的链接而变化。
//Initialize MainIFrame
function MainIFrame(element) {
var inst = this;
this.handle = element;
//Initializing with default view
this.switchDefaultView();
//Setting the default height
this.setAutoHeight();
//Add click event to links
$('.link').on('click', function() {
inst.switchView(this);
inst.setAutoHeight();
});
};
MainIFrame.prototype.switchDefaultView = function() {
this.handle.attr('src','default.html');
};
MainIFrame.prototype.switchView = function(element) {
var src = $(element).attr('href');
this.handle.attr('src',src);
}
MainIFrame.prototype.setAutoHeight = function() {
var inst = this.handle;
$(this.handle).on('load',function() {
var doc = inst.contentWindow ? inst.contentWindow.document : inst.contentDocument;
alert(doc); //GETTING UNDEFINED
//change height
});
}
$(document).ready(function() {
var myIFrame = $('#iframe-main');
var mainIFrame = new MainIFrame(myIFrame);
});
有人可以告诉我这是怎么回事吗?非常感谢。
最佳答案
好吧,所以contentWindow
是本机Javascript,由于我使用的是jQuery,因此必须首先获取原始的DOM对象。获取contentWindow
的正确方法:
var win = $('#iframe-main').get(0).contentWindow;
For More Information
关于javascript - 即使在.load函数之后,iframe contentWindow仍未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48852888/