我有一個論壇頁面,顯示當前所選消息下面的消息樹視圖。當您在樹中點擊消息中的新郵件正文中使用AJAX加載到DIV接近頁面的頂部,然後將下面的代碼運行:在Safari中使用location.hash滾動頁面
window.location.hash = "page_top";
當然「page_top」是錨點元素靠近頁面的頂部,因此新加載的消息正文會滾動到視圖中。
這適用於除Safari之外的所有瀏覽器。在Safari上(在PC和iPhone上測試),只有在您第一次設置location.hash時纔有效。如果再次設置,頁面不會滾動。
最終結果是新加載的郵件正文不能在Safari中滾動到視圖中,並且每次從樹中選擇新郵件時都必須滾動回頁面的頂部。
爲什麼Safari不喜歡這個,有什麼我可以做的,以解決它?
編輯:
我猜這是關係到你可以通過谷歌搜索有關的location.hash和Safari瀏覽器發現了錯誤。似乎Safari曾經有一個錯誤,如果你將哈希設置爲相同的值兩次,它會導致它重新加載頁面。我猜測,當他們修正了這個錯誤時,他們把它修復得太徹底了,並且當你再次將散列值設置爲相同的值時,停止它做任何事情。
http://www.howtocreate.co.uk/safari/locationHashBug.html
這不起作用,它做了一些不同的,但仍然無法正常工作。它使卷軸在每隔一段時間都處於頂端,這很奇怪。調用該代碼一次兩次,並且每次點擊都能正常工作,但必須有比設置.hash四次更好的解決方案! – andynormancx 2009-02-14 14:12:20