1

我正在使用下面的代码在回发后检索内容页面内面板和网格视图的滚动位置。我也使用更新面板。下面的代码可以正常工作,但由于同一页面中的自动完成扩展程序无法正常运行,它会在第 7 行抛出运行时 javascript 错误,例如“JavaScript 运行时错误:无法获取未定义或空引用的属性 'scrollLeft'”。请帮助我摆脱这个 javascript 错误,以便这两个函数都能正常工作。提前致谢..

`

<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('ctl00_ContentPlaceHolder2_Panel1').scrollLeft;//line 7
        yPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop;
    }
    function EndRequestHandler(sender, args) {
        $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft = xPos;
        $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop = yPos;
    }
</script>`
4

2 回答 2

0

您可以根据 JQuery 清楚地标记它,所以我假设您使用的是 JQUERY。

你应该想做这样的事情

 xPos = $('#ctl00_ContentPlaceHolder2_Panel1').scrollLeft;
于 2013-10-02T14:49:05.633 回答
0

感谢大家分享您所有宝贵的想法..

我在执行每个函数之前添加了一个验证,这解决了我的问题。请在下面找到更新的代码;`

<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) {


        if ($get('ctl00_ContentPlaceHolder2_Panel1') != null) {
            xPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft;
            yPos = $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop;
        }
    }
    function EndRequestHandler(sender, args) {
        if ($get('ctl00_ContentPlaceHolder2_Panel1') != null) {
            $get('ctl00_ContentPlaceHolder2_Panel1').scrollLeft = xPos;
            $get('ctl00_ContentPlaceHolder2_Panel1').scrollTop = yPos;
        }
    }
</script>
于 2013-10-03T09:14:16.897 回答