Microsoft JScript中的运行时错误:未定义“数组”

时间:2012-09-16 21:10:55

标签: c# jquery asp.net visual-studio-2010 breakpoints

我正在使用Microsoft Visual Web Developer 2010 Express。

我有一个隐藏的图像按钮,如果用户上传图像,则设置为visible =“true”。 这是代码:

aspx文件:

           <asp:UpdatePanel ID="upOne" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:ImageButton ID="btnImageOne" runat="server" CssClass="btnImage" 
                        Visible="false" onclick="btnImageOne_Click" />
                    <asp:LinkButton ID="btnDeleteOne" runat="server" CssClass="btnDelete" Visible="false"
                        onclick="btnDeleteOne_Click">&nbsp;</asp:LinkButton>
                </ContentTemplate>
            </asp:UpdatePanel>

当可见时,如果用户点击,该按钮会: aspx.cs文件:

    protected void btnDeleteOne_Click(object sender, EventArgs e)
    {
        if (Session["fuOneFilename"] != null)
        {
            File.Delete(Server.MapPath("~/animals/temp/") + (string)Session["fuOneFilename"]);
            Session["fuOneFilename"] = null;
            DisplayUploadedPictures();

            if (Session["mainImageFilename"] == Session["fuOneFilename"])
            {
                Session["mainImageFilename"] = null;
                DisplayMainImage();
            }
        }
    }

我在aspx.cs文件的第二行放置了一个断点。 按下F5后,应用程序将停在位于jQuery (未修改)文件内的JavaScript行中。

j = Array.prototype.push

我收到了消息:

  Microsoft JScript中的

运行时错误:未定义“数组”

在同一个窗口中,我可以看到三个按钮: 休息,继续,忽略。

注意:页面加载中的断点运行没有问题。


调用堆栈显示:

  

匿名函数JScript

     

JScript全局代码JScript


的问题:

Q1。 为什么会这样?

Q2。 我该如何解决?

1 个答案:

答案 0 :(得分:1)

Q1。为什么会这样?

如果您具有以下配置,则会发生此错误:

<collapsible panel>
    <iframe>
        <script>
        </script>
    </iframe>
</collapsible panel>

当页面加载时,显示的面板会在加载javascript库之前强制iframe中的脚本通过DOM拖动。


Q2。我该如何解决?

解决方案是通过jQuery声明source属性:

open: function(){
    document.getElementById("iframename").src = "page.aspx";
}

最终备注:

这个答案的所有学分都归花钱,他的评论指出了我正确的方向。

但是,我不想让这个问题“无人接听”,所以我决定从the linked post收集信息并将其汇总到一个帖子中。