错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”

error"JavaScript runtime error: Unable to get property 'scrollLeft' of undefined or null reference" while finding scroll position

本文关键字:引用 属性 未定义 scrollLeft 获取 运行时错误 JavaScript 查找 滚动 位置 错误      更新时间:2023-09-26

我正在使用以下代码在回发后检索内容页面内面板和网格视图的滚动位置。我也使用更新面板。下面的代码工作正常,但它在第 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>`

你可以清楚地标记它反对JQuery,所以我假设你正在使用JQUERY。

你应该想做这样的事情

 xPos = $('#ctl00_ContentPlaceHolder2_Panel1').scrollLeft;

感谢大家分享您所有有价值的想法。

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

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