gpt4 book ai didi

javascript - backbone.js IE8 appendChild() 错误

转载 作者:行者123 更新时间:2023-11-28 13:51:20 25 4
gpt4 key购买 nike

典型的“在 Chrome/FF 中有效,但在 IE 中无效”的故事。不过 IE9 似乎处理得很好。

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

这是screenshot IE Profiler 跟踪错误。

这是我的 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') });

不知道为什么它只在 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 -->

最佳答案

老问题,但我今天收到此错误,这是最佳结果,所以我想仍然相关。

您在标记中使用了 html5 数据属性 - 大概您的文档是 html5?如果您使用 IE8 不支持的任何新标签(未添加某种描述的填充程序),jQuery 会产生此错误。在页面的头部尝试这个。

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

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

关于javascript - backbone.js IE8 appendChild() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com