我就像在网上的每一个问题,尝试像50差异方法,首先我试图滚动div - 然后当它没有工作,我试图iframe文件与div并滚动iframe。什么都行不通!
查看我设置的最后一个脚本:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var t = 100; //arbitrary time in ms
$("#frame").animate({ scrollTop: $("#frame").height()}, t);
});
</script>
<center><iframe id="frame" src="xxx.php" frameborder="0" width="630px" height="500px"></iframe></center>
我尝试了没有(#)的#frame和frame,两者都是(document).ready而没有它。 似乎没有什么东西在页面上起作用并且它驱使我疯狂。
感谢。 :)
答案 0 :(得分:14)
使用jQuery,您需要使用.contents()
来访问iframe中的任何内容。您还需要使用窗口加载事件或iframe的文档就绪事件。
$(window).load(function ()
{
var $contents = $('#frame').contents();
$contents.scrollTop($contents.height());
});
我建议你回到你提到的div结构,因为它听起来像你要做的不需要iframe。你会发现使用div比使用iframe要少得多。
$(function ()
{
var $mydiv = $('#mydiv');
$mydiv.scrollTop($mydiv.height());
});
如何在页面加载后3秒启动滚动功能?
使用setTimeout
。
$(window).load(function ()
{
setTimeout(function ()
{
var $contents = $('#frame').contents();
$contents.scrollTop($contents.height());
}, 3000); // ms = 3 sec
});
答案 1 :(得分:6)
如果您可以访问iframe内容的源代码,一个简单的方法是添加&lt; a name ='end'&gt;&amp; nbsp; (或您内容的最后一行)&lt; / a&gt; (不确定您是否真的需要&lt; a&gt;标记中的任何内容。)
将#end添加到iframe源,例如
http://www.yourdomain.com/file.php#end
它会自动滚动到最后,不需要javascript / jquery
答案 2 :(得分:1)
如果当前文档已准备就绪,这意味着DOM已准备就绪,但iframe中的文档也必须加载。
<script type="text/javascript">
$(document).ready(function() {
$("#frame").load(function(){this.contentWindow.scrollBy(0,100000)});
});
</script>