2011-06-11 138 views
6

我就像在網上關於這個問題的每一個問題,嘗試像50差異的方法,首先我試圖滾動div - 然後當它沒有工作,我試圖iframe的文件與div和滾動iframe ..沒有什麼是正常的在最後一個腳本如何在頁面加載時將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和框架沒有(#),都與(文件)。就緒,並沒有它。 似乎沒有任何工作在網頁上,它驅使我瘋狂。

謝謝。 :)

+0

是在同一個域作爲其父的iframe? – 2011-06-11 13:50:29

+0

iframe正常工作,滾動到底部不起作用。這是一個不是HTML的jQuery問題:)(是它在同一個域中)。 – Ricardo 2011-06-11 14:02:12

回答

13

使用jQuery,您需要使用.contents()來訪問iframe中的任何內容。您還需要使用窗口加載事件或iframe的文檔準備事件。

$(window).load(function() 
{ 
    var $contents = $('#frame').contents(); 
    $contents.scrollTop($contents.height()); 
}); 

演示:http://jsbin.com/ujuci5/2


我建議要回你提到的DIV結構,因爲它聽起來就像你正在試圖做的,不需要一個iframe什麼。你會發現使用div比使用iframe要少得多。

$(function() 
{ 
    var $mydiv = $('#mydiv'); 
    $mydiv.scrollTop($mydiv.height()); 
}); 

演示:http://jsbin.com/ujusa4/2


我怎麼能像發射3秒滾動功能在頁面加載後?

使用setTimeout

$(window).load(function() 
{ 
    setTimeout(function() 
    { 
     var $contents = $('#frame').contents(); 
     $contents.scrollTop($contents.height()); 
    }, 3000); // ms = 3 sec 
}); 
+0

謝謝,但似乎我需要運行的功能只有1-2秒後,因爲有一個喊盒,它需要1-2秒鐘之前它加載,所以它基本上下來,然後喊話器加載和它再次上升,有什麼建議麼? – Ricardo 2011-06-11 15:06:59

+0

您使用的是什麼喊話器?理想情況下,您可以將回叫傳遞給在留言箱加載後運行的留言箱。 – 2011-06-11 15:09:40

+0

Yshout 5。(

1

如果當前的文件已準備就緒,這意味着DOM已準備就緒,但iframe中的文件,必須得裝。

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#frame").load(function(){this.contentWindow.scrollBy(0,100000)}); 
}); 
</script> 
+0

感謝這正是我在Matt Ball的評論中所要求的,不過就像我說的那樣,有一個加載1-2秒後的吼吼箱,反正你的代碼沒有工作。 :\ – Ricardo 2011-06-11 15:12:01

+1

因此,請查看YShout文檔並搜索是否有可能在加載完成時使用回調函數。如果是,請調用'window.scrollBy(0,100000)' – 2011-06-11 15:33:01

4

如果有權訪問的iframe中內容的源代碼,一個簡單的竅門是添加<爲name =「結束」 > & NBSP; (或您的內容的最後一行)</a >(不確定您是否確實需要<a>標記中的任何內容)。

將#end添加到iframe源,例如,

http://www.yourdomain.com/file.php#end 

,它會自動滾動到終點,沒有使用Javascript/jQuery的需要

+0

這是一個很好的解決方案,但我認爲它可以是屬性爲'id =「end」的任何元素(span,div,a等) – jperelli 2015-04-09 21:56:10

相關問題