IE7 добавляется, но не загружается <script>при введении - PullRequest
0 голосов
/ 03 июня 2011

У меня есть JS, который живет до закрытия тега </body>, который содержит метод, который внедряет другой элемент <script> для загрузки файла JS, если выполняется определенное действие.

Фрагмент кода для добавлениявыглядит примерно так:

var script = document.createElement('script');

script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://path/to/script.js');

document.body.appendChild(script);

Этот код отлично работает во всех браузерах, кроме IE7.В IE7 он успешно добавляет скрипт в DOM, но не загружает его.

Еще одна вещь, на которую я хотел бы обратить внимание, это то, что я также пытался добавить этот скрипт к <head>, и онвсе еще не работает.

Ответы [ 3 ]

2 голосов
/ 04 июня 2011

Вместо добавления элемента script к элементу body (который не закрывается, когда вы пытаетесь сделать это только за до закрывающего тега </body>), попробуйте добавить свой скрипт вhead.Более того, не используйте setAttribute, а устанавливайте свойства нового DOMElement напрямую:

var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://path/to/script.js';
document.getElementsByTagName('head')[0].appendChild(script);
0 голосов
/ 04 июня 2011

Вы пытались добавить тег сценария и затем установить источник?Я знаю, что IE7 требует этот порядок при добавлении тегов стиля, так что, возможно, стоит попробовать!

0 голосов
/ 04 июня 2011

Добавить сценарий после завершения загрузки DOM?Я знаю, что IE6 имеет проблемы с изменением DOM до того, как он был загружен (Неустранимый при: Не могу загрузить эту страницу).

Либо используйте window.onload, либо просто поместите скрипт в файл JavaScript, который вы включаетезаголовок.

Кроме того, в случае, если ресурс JavaScript на самом деле не является файлом JavaScript, а какой-то скрипт, который генерирует файл JavaScript, убедитесь, что вы отправляете заголовок содержимого JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...