Динамическая загрузка скриптов - PullRequest
1 голос
/ 16 мая 2011

Я занят в проекте, и у меня есть несколько дополнительных файлов javascript, которые необходимо загрузить во время работы проекта.Теперь для этого я создал следующий код:

var script = _thisIframe.contentDocument.createElement('script');
script.type = 'text/javascript';
script.src = 'main.js?' + Math.random();

_thisIframe.contentDocument.body.appendChild(script);

Этот код отлично работает в Firefox, Safari, Chrome, Opera IE9 и IE8.Но это не в IE7. Здесь я получаю следующую ошибку:

SCRIPT5007: Unable to get value of the property 'createElement': object is null or undefined

Ошибка создается при выполнении строки createElement.

Я искал этоТип ошибки, но я не нашел ответа.

Спасибо

1 Ответ

1 голос
/ 16 мая 2011

contentDocument не поддерживается в IE7, или, более конкретно, вы получаете эту ошибку, потому что contentDocument не является свойством _thisIframe и поэтому возвращает undefined, что, конечно, не имеет метода createElement().

Используйте contentWindow.document для поддержки IE7.

Простой способ получить правильное свойство - использовать логический оператор || и его короткое замыкание , напримера также JavaScript, возвращающий последнее оцененное значение в условии (чаще всего операнд truey ).

var doc = _thisIframe.contentDocument || _thisIframe.contentWindow.document;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...