Приложение MVC3 и проблема с JavaScript - PullRequest
0 голосов
/ 17 января 2012

У меня следующая проблема:

Приложение 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.listEnveloppe = new Function;

Проблема в том, что этот код работает на FF и Chrome, но не в IE8

Кто-нибудь знает, что может быть не так?

Спасибо

Ответы [ 2 ]

1 голос
/ 17 января 2012

У вас есть некоторые закрытые скобки. Попробуйте исправить свой 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);
                }
            };
        }
    }

    /* ....*/
};
1 голос
/ 17 января 2012

Возможно, отсутствует скобка в конструкторе 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();
...