Javascript 如何申请';偏移量';到iframe中的元素?
我想使用Javascript 如何申请';偏移量';到iframe中的元素?,javascript,jquery,iframe,Javascript,Jquery,Iframe,我想使用jQuery.animate从iframe外部的链接导航到iframe内部的div。 这是我使用的代码: function scrollToAnchorIframe(aid){ var aTag = window.frames['myFrame'].document.getElementById(aid); $('html,body').animate({scrollTop: aTag.offset().top - 62},'slow'); } 但是,它不起作用,记录错误“Ob
jQuery.animate
从iframe外部的链接导航到iframe内部的div。
这是我使用的代码:
function scrollToAnchorIframe(aid){
var aTag = window.frames['myFrame'].document.getElementById(aid);
$('html,body').animate({scrollTop: aTag.offset().top - 62},'slow');
}
但是,它不起作用,记录错误“Object[Object HTMLElement]没有方法“offset”
”。有没有办法获得id的偏移量以使其正常工作
更新(已解决):
这就是我现在使用的代码:
function scrollToAnchorIframe(aid){
var aTag = window.frames['myFrame'].document.getElementById(aid);
jQuery('html,body').animate({scrollTop: $(aTag).offset().top + $("#myFrame").offset().top - 62},'slow');
}
aTag
是DOM元素,将其设为jQuery对象
$('html,body').animate({scrollTop: $(aTag).offset().top - 62},'slow');
如果将iframe放在容器框中,那么这里有一个更新,以便从父页面容器上/下导航到iframe的书签锚(注意:“window.frames”与FF browser存在已知的兼容性错误,因此我将改用“contentWindow”): 因此,当我们从父HTML调用函数时,向上/向下滚动取决于iframe当前位置:
<a onclick="iframeBookmark('iframeBookmarkID')">...</a>
。。。
…其中“iframeBookmarkID”是iframe页面中书签锚的ID。由于对象不是jQuery对象,因此出现该错误。这是一个HTMLElement。尝试
$(aTag).offset()
或包装窗口.frames['myFrame'].document.getElementById(aid)
在$()
中请注意,除非您使用相同的协议在同一域上工作,否则无法使用X-Frame编程。谢谢!这就成功了。下面是我现在使用的完整代码:函数scrollToAnchorIframe(aid){var aTag=window.frames['myFrame'].document.getElementById(aid);jQuery('html,body').animate({scrollTop:$(aTag.offset().top+$(“#myFrame”).offset().top-62},'slow');}
<a onclick="iframeBookmark('iframeBookmarkID')">...</a>