MVC3应用程序和javascripts问题

时间:2012-01-17 13:09:30

标签: javascript asp.net-mvc-3 internet-explorer-8 cross-browser

我有以下问题:

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

有谁知道什么是错的?

谢谢

2 个答案:

答案 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);
                }
            };
        }
    }

    /* ....*/
};