【问题标题】:Visual Studio throwing exceptions when using Internet Explorer使用 Internet Explorer 时 Visual Studio 引发异常
【发布时间】:2016-01-28 07:46:54
【问题描述】:

使用 Visual Studio 编写 ASP.net Web 应用程序,当 chrome 或 firefox 是默认资源管理器时,我从未遇到任何问题。但是当它是 IE 时,一个名为 Script documents 的新项目突然出现在我的项目资源管理器中,Visual Studio 总是在新项目中显示每个页面加载的异常:

JavaScript execution error: Unable to get the property "tagName" of a null or undefined reference

这不会阻止网络应用程序工作,只是在调试时每次切换页面时都必须在 Visual Studio 中单击窗口,这很烦人。

窗口让我可以停止、继续或忽略。

忽略让窗口立即重新出现,继续让它消失一会儿...

在谷歌上没有找到解决问题的方法,这里也没有。

如何解决?探索者有何不同?


编辑:

以此为例,我很确定它应该有效:

jQuery is not defined twitter bootstrap

而且,我的 IE 11 中总是弹出窗口,说它没有找到 tagName 属性。

所以现在我的新问题是,我是否必须指定每个对象的标签名称,因为我使用了boothstrap?还是其他原因导致问题?


编辑:

这是母版页的代码:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Canevas.master.cs" Inherits="MandatMobile.Canevas" %>
<%@ Register Src="~/Controls/Menu.ascx" TagPrefix="ctrl" TagName="Menu" %>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">    </script>
  <script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<title></title>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" >
    </asp:ContentPlaceHolder>
</head>
<body>

    <form runat="server" style="position:absolute; left:10px;">
    <asp:Image runat="server" ImageUrl="~/Img/Fullogo.jpg" ></asp:Image>


    <h2 style="position:absolute; top:-5px; left:120px; width:1200px;" >
    <asp:ContentPlaceHolder ID="title" runat="server" >
    </asp:ContentPlaceHolder>
    </h2> 

   <%if (Convert.ToInt32(Session["Level"]) != 1)
    { %>

    <div style="position:absolute; top:110px; left:0px;">
    <ctrl:Menu ID="Menu1" runat="server" ></ctrl:Menu>
</div>

<% } %>

<br /><br /><br /><br />
    <asp:ContentPlaceHolder ID="BodyContent" runat="server" >
    </asp:ContentPlaceHolder>

  </form>

  </body>
  </html>

已解决:


真是可笑...在我构建这个菜单之前还有另一个菜单,我所做的是将以前的菜单放在 HTML 注释中并将我的新菜单编码在同一页面上,但注释中的菜单仍然存在,甚至虽然它在评论中它仍在寻找它的参考,就像它没有在评论中一样......什么......我认为这将是我的新问题

【问题讨论】:

  • chrome 会在控制台上显示同样的错误!
  • 找到错误产生的行并通过if(...)try { ... } catch { ... }防止错误
  • 检查 JS 文件引用顺序,可能是因为某些插件可能正在读取 'tagname'。 Chrome 的行为也类似,但不会弹出 IE 警报类型窗口
  • @MithunPattankar 我有这样一种 ref 脚本,可以增强网页内容的视觉效果:maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" />
  • 贴出你的代码,没有它,就无法帮助修复错误。

标签: javascript asp.net twitter-bootstrap visual-studio internet-explorer


【解决方案1】:

Ok 很多问题让我们一一回答:

“但是当它是IE时,我的项目资源管理器中突然出现了一个名为Script documents的新项目......”

你所说的这个项目是Visual Studio的一种机制,它允许开发人员在IDE(Visual Studio)中调试javascript,但这仅适用于IE,因为据我所知,没有什么有趣的来自 Microsoft(或浏览器创建者),使其适用于其他浏览器。

如果您想更好地了解它是什么以及如何使用、启用、禁用,请参阅此帖子:Using Visual Studio to Debug JavaScript in IE

“...Visual Studio 总是在新项目中显示每个页面加载的异常:”

正如@Mithun Pattankar 在您的问题中评论的那样,可能其他浏览器也会出现此异常,但是当您使用 chrome 或 firefox 时,您会更安静地得到此异常。要查看您必须转到 DevTools(chrome 中的 F12)或其他一些自定义工具,然后才能看到它。

但是因为你在VS中启用了调试javascript,所以当你使用IE时,异常是在VS而不是浏览器中抛出的。

而且,我的 IE 11 中总是弹出窗口,说它没有找到 tagName 属性。

所以现在我的新问题是,我是否必须指定每个对象的标签名称,因为我使用了boothstrap?

好吧,这里有些误导。首先问题不在于tagName 属性。让我解释一下:

您收到的消息错误是"Unable to get the property "tagName" of a null or undefined reference"。见下面代码:

var v1 = { aGenericPropertyName: 10 };

v1.aGenericPropertyName = 20;

var v2 = v1.aGenericPropertyName;

v1 = null;
//or:
v1 = undefined;

var v3 = v1.aGenericPropertyName;

在最后一行,根据浏览器的不同,你可能会得到这个异常:

"Unable to get the property "aGenericPropertyName" of a null or undefined reference."

你现在收到了吗?问题不在于属性,而是调用属性的对象或更准确地说是变量(在我的示例代码中为变量 v1)中没有对象(null 或 undefined)。

还是其他原因导致问题?

这是真正的问题,因为这种错误基本上可能发生在您添加到页面的任何 javascript 代码的任何部分。所以只看表面是不可能解决这个问题的。

如果您想尝试,我有一些建议。首先,确保您拥有正确的 bootstrap.js 和 jquery.js 文件,并且它们之间相互兼容。第二次检查您的自定义 javascript 文件中是否出现此错误。

除此之外,我们只能为您提供帮助,前提是您发布异常的确切行以及错误发生的方式。

【讨论】:

  • 嗯,这是一个很好的答案,我能够通过删除 javascripts 代码的不同部分来定位问题的确切位置,还不能解决它,但至少我知道是什么issu,这是我的菜单,我会尽可能接受你的回答,同时我会尝试找到解决问题部分的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多