我需要调整跨域iframe的大小以适应内容。所以在parent.html中我写这个:
$(function () {
$('iframe').load(function () {
var h = null;
if (!h) {
if (location.hash.match(/^#h(\d+)/)) {
h = RegExp.$1;
$(this).css({
'height': h + 'px'
})
location.hash = ''
}
}
})
})
并在child.html中写道:
$(function () {
h = 0
h = $(document).height()
console.log(h)
if (top != self) {
top.location.replace("http://parentdomain.com/#h" + h);
}
})
加载一次后效果很好,但如果我点击iframe中的链接,内容更改变量h
仍然具有第一个值。如果我在新窗口中打开child.html
var h
将会更改,但不会更改为iframe。
可以修复吗?
答案 0 :(得分:0)
实际上不会再调用resize动作。
如果单击iFrame中的链接,则应调用父级的函数,或者观看仅在更新的浏览器上支持的haschange事件。