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

时间:2013-10-02 14:42:34

标签: c# javascript jquery asp.net

我使用下面的代码在回发后检索内容页面内的面板和gridview的滚动位置。我也使用更新面板。下面的代码工作正常,但它会引发运行时javascript错误,例如" JavaScript运行时错误:无法获取属性' scrollLeft'未定义或空引用"在第7行,由于同一页面中的自动完成扩展程序无法正常运行。请帮我摆脱这个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>`

2 个答案:

答案 0 :(得分:0)

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

你应该做这样的事情

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

答案 1 :(得分: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>