то есть 6 не могу найти определения JavaScript - PullRequest
3 голосов
/ 29 марта 2012

У меня есть файл javascript a.js, его содержимое иногда выглядит так:

window.model={};

model.init=(
function(){return "something"}
)();

в моих html-файлах, у меня есть что-то вроде этого:

<script type="text/javascript" src="path/to/a.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
       model.init();
    });
</script>

в ChromeFirefox и ie8 это работает.но в ie6 или ie7 так будет, модель не определена.

я не знаю почему.Может ли кто-нибудь помочь мне.

спасибо!


Я поместил предупреждение

в html:

<script type="text/javascript" src="path/to/a.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
           alert("ie6");
       model.init();
    });
</script>

в js

alert("ie7");
window.model={};

model.init=(
function(){return "something"}
)();

сначала печатается «ie6», но «ie7» никогда не печатается

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Опорная модель аналогична объявлению ее как свойства window.

window.model.init=(function(){return "something"})();

$(document).ready(function() {
   window.model.init();
});

Или вы можете сделать обратное и объявить ее как глобальную переменную.

var model={};
1 голос
/ 29 марта 2012

Это может быть вызвано другим порядком выполнения или какой-то проблемой "подъема".

Попробуйте инициализировать модель с помощью "var model = {}".Затем попробуйте сбросить данные в журнал, чтобы проверить порядок выполнения.В IE есть инструменты для использования console.log, или вы можете попробовать firebug lite.

...