【问题标题】:MaintainScrollPositionOnPostback property doesn't works with mozillaMaintainScrollPositionOnPostback 属性不适用于 mozilla
【发布时间】:2012-03-25 07:33:37
【问题描述】:

MaintainScrollPositionOnPostback = true

它适用于 IE,但不适用于 Mozilla(版本 9)

建议另一种保持滚动位置独立于浏览器的方式..

谢谢

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    在这里找到答案:

    http://weblogs.asp.net/andrewfrederick/archive/2008/03/04/maintain-scroll-position-after-asynchronous-postback.aspx

    这里:

    http://www.4guysfromrolla.com/articles/111704-1.aspx

    让我知道它是否适合你!


    编辑

    由于我只有链接答案,我实际上只是将代码 sn-ps 粘贴到此处,以防这些链接消失:

    来自http://weblogs.asp.net/andrewfrederick/archive/2008/03/04/maintain-scroll-position-after-asynchronous-postback.aspx

    <script type="text/javascript">
        var xPos, yPos;
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_beginRequest(BeginRequestHandler);
        prm.add_endRequest(EndRequestHandler);
        function BeginRequestHandler(sender, args) {
            xPos = $get('scrollDiv').scrollLeft;
            yPos = $get('scrollDiv').scrollTop;
        }
        function EndRequestHandler(sender, args) {
            $get('scrollDiv').scrollLeft = xPos;
            $get('scrollDiv').scrollTop = yPos;
        }
    </script>
    

    发件人:http://www.4guysfromrolla.com/articles/111704-1.aspx

    <script language = "javascript">
    
        function sstchur_SmartScroller_GetCoords()
        {
            var scrollX, scrollY;
    
            if (document.all)
            {
                if (!document.documentElement.scrollLeft)
                    scrollX = document.body.scrollLeft;
                else
                    scrollX = document.documentElement.scrollLeft;
    
                if (!document.documentElement.scrollTop)
                    scrollY = document.body.scrollTop;
                else
                    scrollY = document.documentElement.scrollTop;
            }   
            else
            {
                scrollX = window.pageXOffset;
                scrollY = window.pageYOffset;
            }
    
            document.forms[formID].xCoordHolder.value = scrollX;
            document.forms[formID].yCoordHolder.value = scrollY;
        }
    
        function sstchur_SmartScroller_Scroll()
        {
            var x = document.forms[formID].xCoordHolder.value;
            var y = document.formsformID].yCoordHolder.value;
            window.scrollTo(x, y);
        }
    
        window.onload = sstchur_SmartScroller_Scroll;
        window.onscroll = sstchur_SmartScroller_GetCoords;
        window.onkeypress = sstchur_SmartScroller_GetCoords;
        window.onclick = sstchur_SmartScroller_GetCoords;
    
    <script>
    

    所有这些都归功于为这些答案努力工作的人。

    【讨论】:

    • 感谢您将其标记为答案,您能否通过单击答案左上角的向上箭头将答案标记为有用,以给予我一些信任。谢谢:-)
    • 对不起,我的声誉低于 15.. :(
    • 有人可以告诉我如何实现第一个吗?我无法让它正常工作。非常感谢!
    【解决方案2】:

    我刚刚在旧代码库上遇到了同样的问题。将 .NET Framework 从 3.5 更新到 4.7 为我清除了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2019-02-10
      • 2012-08-09
      • 2012-12-12
      相关资源
      最近更新 更多