使用下面的代码,我成功地让jQuery.load将外部元素的html拉入div("tnc-import"
(,但根据控制台,newElementHeight
变量只返回元素的init信息(init [prevObject: init(1), context: document, selector: "div#tnc-import > div#tnc"]
(,而不是实际获取外部元素的true-height属性。
源文档包含要在<div id="tnc">...</div>
中导入的文本。
目标文档包括...
<div>
<iframe id="iframe" src="/bin/tnc-import" frameborder="0" scrolling="no"></iframe>
</div>`
执行导入和格式化的中间文档是...
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script>
</head>
<body>
<div id="tnc-import"></div>
</body>
<foot>
<script type='text/javascript'>
$("#tnc-import").load( "../terms-and-conditions #tnc" );
var newElementHeight = $("div#tnc-import > div#tnc").height(true);
console.log(newElementHeight);
$('#iframe', window.parent.document).width('100%');
$('#iframe', window.parent.document).height(newElementHeight);
</script>
</foot>
</html>
我尝试这样做的原因是所有获取 jQuery 加载元素的height
、clientHeight
、offsetHeight
等的尝试总是导致"0"。我实际上花了超过 12 个小时与 Google 一起解决这个目标,但没有积极的结果。也许那个脚本有什么问题,我只是没有注意到......无论哪种方式,我尝试过的方法或任何变体都不起作用。
这是我正在尝试的旧方法变体之一......
<script type='text/javascript'>
$('#iframe', window.parent.document).width('100%');
$('#iframe', window.parent.document).height($("div").outerHeight() + 10);
</script>
根据 jQuery 的文档,.height()
不接受任何带有布尔参数的参数,请尝试从函数中删除 true 以接收元素newElementHeight
高度。
参考资料 :http://api.jquery.com/height/