页面抛出JavaScript运行时错误:“函数名称”未定义。仅限IE10

时间:2013-11-20 15:33:56

标签: javascript asp.net

在使用IE10时,我发现从后面的代码中注册或调用的JavaScript函数抛出异常:

  

“JavaScript运行时错误:'函数名'未定义”。

对于前: (!IsPostBack)块后面的代码:

Page.RegisterStartupScript("showGCAlert", "<script language=\"javascript\">ShowGCAlert();</script>");

浏览量:

function ShowGCAlert()
    {

        alert('GCAlert');
        if(document.getElementById('hdnGCAlert').value != "1")
        {
            document.getElementById('divGCAlert').style.display = "Block";
            document.getElementById('chkReminder').focus();
            document.getElementById('btnLogin').disabled = true;
            document.getElementById('Button2').disabled = true;             

        }
        else
        {
            document.getElementById('divGCAlert').style.display = "none";
            document.getElementById('btnLogin').disabled = false;
            document.getElementById('Button2').disabled = false;                
            if (document.getElementById("txtUsername").value != "")
                document.getElementById("txtPassword").focus();
            else
                document.getElementById("txtUsername").focus();
        }

    }

当页面加载时,即使动态页面上存在ShowGCAlert(),也会引发异常。

继续异常设计页面显示:

<script language="javascript" src="/ABC/DEF/Scripts/Common.js"></script>
<script language="javascript">
    document.body.style.overflowY="hidden";
    document.body.style.overflowX="hidden";
    var jsAppName ='ABC';
</script>
<script language="javascript">
    function window.onresize() 
    { 
        document.cookie = "resX=" 
                        + document.body.clientWidth 
                        + ";resY=" 
                        + document.body.clientHeight 
                        + ";path=/"; 
    } 
    window.onresize();
</script>
<script type="javascript">
      ShowGCAlert();
</script>
<script language="javascript">
    document.getElementById('txtPassword').focus();
</script>

在ie9或IE10兼容性视图中,其工作正常。请告诉我我在哪里做错了。

1 个答案:

答案 0 :(得分:1)

尝试使用RegisterClientScriptBlock将脚本放在页面末尾并调用它。

   Page.ClientScript.RegisterClientScriptBlock("showGCAlert", 
     "<script type=\"text/javascript\">ShowGCAlert();</script>");