我想设置iframe
匹配内容的高度。但iframe.contentWindow
即使将undefined
放入.load()
后也会返回iframe
。这是完整的代码:
注意:
src
的{{1}}属性会根据您点击的链接进行更改。
//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);
});
有人可以告诉我这有什么问题吗?非常感谢。
答案 0 :(得分:2)
好吧,contentWindow
是原生的Javascript,因为我使用的是jQuery,所以我必须先获取原始的DOM对象。获取contentWindow
的正确方法:
var win = $('#iframe-main').get(0).contentWindow;