我有以下问题:
ASP.NET MVC3应用程序,在_Layout.cshtml中,在标题部分,我引用了几个javascript脚本,如下所示:
<script src="@Url.Content("~/Scripts/app/app.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/app/listEnveloppe.js")" type="text/javascript"></script>
在app.js中我定义了App对象如下:
var App = {
init: function () {
if (window.console == undefined) {
window.console = {
log: function () {
var str = '';
for (var i in arguments[0]) {
str += i + ':\t' + arguments[0][i] + '\n';
}
alert(str);
}
};
}
/* ....*/
}
然后在listEnveloppe.js中引用App对象,如下所示
App.listEnveloppe = new Function;
问题是,此代码适用于FF和Chrome,但不适用于IE8
有谁知道什么是错的?
谢谢
答案 0 :(得分:1)
Function
构造函数中可能缺少括号?
App.listEnveloppe = new Function(); // <----- missing () ?
由于情况并非如此,请尝试将App
声明为window
作为// In app.js:
var appInstance = window.App || {};
appInstance.init = function () {
};
// In listEnveloppe.js:
var appInstance = window.App || {};
appInstance.listEnveloppe = new Function();
的属性。并且以相对于脚本声明顺序的不可知方式进行:
{{1}}
答案 1 :(得分:1)
你有一些未公开的括号。尝试修复您的javascript:
var App = {
init: function () {
if (window.console == undefined) {
window.console = {
log: function () {
var str = '';
for (var i in arguments[0]) {
str += i + ':\t' + arguments[0][i] + '\n';
}
alert(str);
}
};
}
}
/* ....*/
};