当window是一个iframe时,jQuery的scrollTop返回null.有谁能够弄清楚如何获取一个iframe的scrollTop?
更多信息:
我的脚本正在运行在iframe本身,父窗口在另一个域,所以我无法访问iframe的ID或任何类似的
解决方法
您可以使用此设置设置scrollTop:
$("html,body").scrollTop(25);
所以你可以尝试这样做:
$("html,body").scrollTop();
因为不同的浏览器将scrollTop设置在不同的元素(body或html)上.
从scrollTo插件:
但是在某些浏览器中可能仍然会失败.以下是Ariel Flesher’s scrollTo plugin for jQuery源代码的相关部分:
// Hack,hack,hack :) // Returns the real elements to scroll (supports window/iframes,documents and regular nodes) $.fn._scrollable = function(){ return this.map(function(){ var elem = this,isWin = !elem.nodeName || $.inArray( elem.nodeName.toLowerCase(),['iframe','#document','html','body'] ) != -1; if( ! isWin ) { return elem; } var doc = (elem.contentWindow || elem).document || elem.ownerDocument || elem; return $.browser.safari || doc.compatMode == 'BackCompat' ? doc.body : doc.documentElement; }); };
然后您可以运行:
$(window)._scrollable().scrollTop();
确定iframe向下滚动的距离.