Javascript backbone.js IE8 appendChild()错误

Javascript backbone.js IE8 appendChild()错误,javascript,jquery,internet-explorer,backbone.js,cross-browser,Javascript,Jquery,Internet Explorer,Backbone.js,Cross Browser,典型的“适用于Chrome/FF,但不适用于IE”故事。IE9似乎处理得很好 IE控制台中唯一显示的内容是: SCRIPT65535:对方法或属性访问的意外调用。 jquery.min.js,第3行字符32461 下面是IE探查器跟踪错误的示例 下面是我的Nav.js文件中的代码: // Build nav menu array var navLinks = [ {"style" : "home" ,"page" : ""

典型的“适用于Chrome/FF,但不适用于IE”故事。IE9似乎处理得很好

IE控制台中唯一显示的内容是:
SCRIPT65535:对方法或属性访问的意外调用。
jquery.min.js,第3行字符32461

下面是IE探查器跟踪错误的示例

下面是我的Nav.js文件中的代码:

    // Build nav menu array
    var navLinks =  [ {"style" : "home"         ,"page" : ""                    ,"name" : "Home"                ,"tier" : 1     ,"icon" : "home"}, 
              {"style" : "job-trans"    ,"page" : "view/jobTransaction" ,"name" : "Job Transactions"    ,"tier" : 1     ,"icon" : "barcode"},
              {"style" : "job"          ,"page" : "view/job"            ,"name" : "Jobs"                ,"tier" : 1     ,"icon" : "inbox"},
              {"style" : "user"         ,"page" : "view/user"           ,"name" : "Users"               ,"tier" : 1     ,"icon" : "user"},
              {"style" : "report"       ,"page" : "page/report"         ,"name" : "Reports"             ,"tier" : 2},// ,"icon" : "signal"},
              {"style" : "customer"     ,"page" : "view/customer"       ,"name" : "Customers"           ,"tier" : 2}
            ];

    var jobSearchAttr = $.browser.msie ? "value=\"Enter Job #\" data-browser=\"IE\" style=\"font-size: 16px\"" : "placeholder=\"Enter Job #\"";
    var userSearchAttr = $.browser.msie ? "value=\"Enter User ID\" data-browser=\"IE\" style=\"font-size: 16px; padding-left:0;\"" : "placeholder=\"Enter User ID\"";

    // Sort array elements into buttons and dropdowns with appropriate elements
    var i, t1LinkArray = [], t2LinkArray = [], t2ClassArray = [];
    for (var i = 0; i < navLinks.length; i++) {
        switch(navLinks[i]["tier"]) {
            case 1:
                t1LinkArray.push( "<li class=\"" + navLinks[i]['style'] + "\"><a href=\"#/" + navLinks[i]['page'] + "\"><i class=\"icon-" + navLinks[i]['icon'] + " icon-white\"></i> " + navLinks[i]['name'] + "</a></li>" );
                break;
            case 3:
                t2LinkArray.push( "<li class=\"" + navLinks[i]['style'] + "\"><a href=\"#/" + navLinks[i]['page'] + "\">" + navLinks[i]['name'] + "</a></li>" );
                t2ClassArray.push( navLinks[i]['style'] );
                break;
        }
    }

    // Create Navbar View
    NavView = Backbone.View.extend({
        // Define View template
        template: _.template( $('#navbarTemplate').html() ),

        initialize: function () {
            this.render();
        },

        render: function () {
            // Call the template and pass data object
            this.$el.html( this.template({ t1LinkArray : t1LinkArray, t2LinkArray : t2LinkArray, t2ClassArray : t2ClassArray }) );
        },

    });
    var nav = new NavView({ el:$('nav') }); 
//构建导航菜单数组
var navLinks=[{“样式”:“主页”、“页面”:“名称”:“主页”、“层”:1、“图标”:“主页”},
{“样式”:“作业事务”,“页面”:“视图/作业事务”,“名称”:“作业事务”,“层”:1,“图标”:“条形码”},
{“样式”:“作业”,“页面”:“视图/作业”,“名称”:“作业”,“层”:1,“图标”:“收件箱”},
{“样式”:“用户”,“页面”:“视图/用户”,“名称”:“用户”,“层”:1,“图标”:“用户”},
{“样式”:“报告”,“页面”:“页面/报告”,“名称”:“报告”,“层”:2},//,“图标”:“信号”},
{“样式”:“客户”,“页面”:“视图/客户”,“名称”:“客户”,“层”:2}
];
var jobSearchAttr=$.browser.msie?“值=\“输入作业”\“数据浏览器=\“IE\”样式=\“字体大小:16px\:“占位符=\“输入作业”\”;
var userSearchAttr=$.browser.msie?“值=\”输入用户ID\”数据浏览器=\“IE\”样式=\”字体大小:16px;左侧填充:0\“”:“占位符=\”输入用户ID\“”;
//使用适当的元素将数组元素排序为按钮和下拉列表
变量i,t1LinkArray=[],t2LinkArray=[],t2ClassArray=[];
对于(var i=0;i”);
打破
案例3:
t2LinkArray.push(“
  • ”); t2ClassArray.push(导航链接[i]['style']); 打破 } } //创建导航栏视图 NavView=Backbone.View.extend({ //定义视图样板 模板:_.template($('#navbertemplate').html(), 初始化:函数(){ 这个。render(); }, 渲染:函数(){ //调用模板并传递数据对象 this.$el.html(this.template({t1LinkArray:t1LinkArray,t2LinkArray:t2LinkArray,t2ClassArray:t2ClassArray})); }, }); var nav=新的导航视图({el:$('nav')});
    不知道为什么只有在IE 7/8中才会崩溃

    编辑::以下是当前嵌入正文下方的模板

            <div class="navbar navbar-fixed-top" style="clear: both;">
              <div class="navbar-inner">
                <div id="navbar" class="container-fluid">
    
                  <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                  </a>
    
                  <p class="navbar-text pull-right"><a class="brand" href="/workflow3"><em>Brand</em></a></p>
    
                  <div class="nav-collapse pull-left">
                    <ul class="nav">
                      <!-- List Tier 1 pages -->
                      {{ t1LinkArray.join("\n") }}
    
                      <!-- Style dropdown with each child's page class -->
                      <li class="dropdown {{ t2ClassArray.join(" ") }}"> 
    
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">More<b class="caret"></b>
                        </a>
                        <ul class="dropdown-menu">
                          <!--  List Tier 2 pages -->
                          {{ t2LinkArray.join("\n") }}
                        </ul>
                      </li>
                    </ul>
    
                  </div> <!-- /.nav-collapse -->
                </div> <!-- /.container-fluid -->
              </div> <!-- /.navbar-inner -->
            </div> <!-- /.navbar -->
    
    
    

      {{t1LinkArray.join(“\n”)}
      • {{t2LinkArray.join(“\n”)}

    最终,我仍然没有找到解决当前实际问题的方法。从技术上讲,这甚至不算是一种变通方法,但它确实创造了一个工作环境

    明显的优势,不再需要迎合IE的特质


    我讨厌不知道是什么导致了这种情况,所以其他人请随意回答。

    最终我仍然没有找到解决实际问题的方法。从技术上讲,这甚至不算是一种变通方法,但它确实创造了一个工作环境

    明显的优势,不再需要迎合IE的特质


    我讨厌不知道是什么导致了这一点,所以其他人,请随意回答。

    老问题,但我今天遇到了这个错误,我想这是最重要的结果,所以仍然相关

    您在标记中使用了html5数据属性-您的文档可能是html5?如果您使用了IE8不支持的任何新标记(没有添加任何描述的垫片),jQuery将产生此错误。在你的页面首页试试这个

    <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    
    
    

    除此之外,它显然倾向于出现在格式错误的html中-例如,如果您忘记关闭标记或错过属性中的结束引号。

    老问题,但我今天遇到了这个错误,我想这是最重要的结果,所以仍然相关

    您在标记中使用了html5数据属性-您的文档可能是html5?如果您使用了IE8不支持的任何新标记(没有添加任何描述的垫片),jQuery将产生此错误。在你的页面首页试试这个

    <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    
    
    

    除此之外,它显然倾向于出现在格式错误的html中-例如,如果您忘记关闭标记或错过属性中的结束引号。

    我今天在IE8中帮助一位同事解决了这个问题。我们发现他试图附加到一个不能有子元素的元素(在他的例子中是一个IMG标记)


    我注意到
    newnavview({el:$('nav')})上的jQuery选择器
    应该是.nav没有
    nav
    标记(至少在您的代码示例中),因此它试图向一个不存在的元素添加节点。

    我今天在IE8中帮助一位同事解决了这个问题。我们发现他试图附加到一个不能有子元素的元素(在他的例子中是一个IMG标记)

    我注意到
    newnavview({el:$('nav')})上的jQuery选择器
    应该是.nav没有
    nav
    标记(至少在您的代码示例中),因此它试图将节点添加到不存在的元素中。

    怎么办