jQuery contents()在iFrame中找到锚链接的页面高度

时间:2010-10-04 09:06:12

标签: jquery iframe anchor

我有一个iFrame,加载时可以拉伸整个长度而不需要滚动条 1秒钟后,我想滚动到iFrame中的锚点。

我想我需要达到它的高度? 我怎么能这样做?

HTML:

<iframe id="help-frame" src="help.php" scrolling="no"><\/iframe>

JS:

$("#help-frame").load(function() {
    document.getElementById("help-frame").style.height = 
    document.getElementById("help-frame").contentWindow.document.body.offsetHeight + 'px';
    setTimeout(iScroll, 1000);
});
function iScroll() {
    var anchorH = $("#help-frame").contents().find("a.ordering").height();
    alert(anchorH);
    // smooth scroll to #ordering
}

HTML help.php:

<!-- added a class as well -->
<a name="ordering" class="ordering"></a>
<h2>Ordering</h2>
... long content ...

1 个答案:

答案 0 :(得分:1)

您无需在事件处理程序中重新查询help-framethis将引用调用对象。

$('#help-frame').load(function(){
    var self = $(this);
    setTimeout(function() {
       var pos = self.contents().find('a.ordering').offset();
       self.animate({scrollTop:  pos.top}, 1000);
    }, 1000);
});