2014-09-12 140 views
4
  1. 的Web.config級別=>頁maintainScrollPositionOnPostBack = 「真」/>「maintainScrollPositionOnPostBack =」真「」不與谷歌瀏覽工作

  2. 頁級別=> <%@頁MaintainScrollPositionOnPostback =「真「%>

  3. Code Level => Page.MaintainScrollPositionOnPostBack = true;

  4. 瀏覽器級別=>瀏覽器ID = 「鉻」 的parentID = 「Safari1Plus」> 能力> 能力NAME = 「supportsMaintainScrollPositionOnPostback」 值= 「真」/> 能力> 瀏覽器>

上述4種方式中的任何一種都不適用於谷歌瀏覽器。它與Firefox正常工作。請提供任何解決方案。

+0

你將不得不實施你自己的方法。 http://stackoverflow.com/a/9607425/961695 – 2014-09-12 15:16:01

+0

對於任何現在(或稍後)的用戶來說,Google Chrome至少可以支持頁面級別的增加。 – 2016-11-03 21:00:53

回答

2

可以將此片段添加到您的ASP.NET頁/母版(需要的jQuery):

<asp:HiddenField runat="server" ID="hfPosition" Value="" /> 
<script type="text/javascript"> 
    $(function() { 
     var f = $("#<%=hfPosition.ClientID%>"); 
     window.onload = function() { 
      var position = parseInt(f.val()); 
      if (!isNaN(position)) { 
       $(window).scrollTop(position); 
      } 
     }; 
     window.onscroll = function() { 
      var position = $(window).scrollTop(); 
      f.val(position); 
     }; 
    }); 
</script> 
+0

對於任何人來這裏用ajax調用這個解決方案,window.onload不會運行,所以滾動從不發生。相反,我建議使用特殊的asp.net功能pageLoad。 'function pageLoad(){var position = parseInt(f.val()); if(!isNaN(position)){$(window).scrollTop(position);}}' – 2015-11-02 13:38:22

0

我也面臨着同樣的問題。我找到了一個Javascript解決方案here

<script type = "text/javascript"> 
window.onload = function() { 
    var scrollY = parseInt('<%=Request.Form["scrollY"] %>');    
    if (!isNaN(scrollY)) { 
     window.scrollTo(0, scrollY); 
    } 
}; 
window.onscroll = function() { 
    var scrollY = document.body.scrollTop; 
    if (scrollY == 0) { 
     if (window.pageYOffset) { 
      scrollY = window.pageYOffset; 
     } 
     else { 
      scrollY = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0; 
     } 
    } 
    if (scrollY > 0) { 
     var input = document.getElementById("scrollY"); 
     if (input == null) { 
      input = document.createElement("input"); 
      input.setAttribute("type", "hidden"); 
      input.setAttribute("id", "scrollY"); 
      input.setAttribute("name", "scrollY"); 
      document.forms[0].appendChild(input); 
     } 
     input.value = scrollY; 
    } 
}; 

我希望這會幫助你。