Какие есть варианты, чтобы избежать этой ошибки (и document.write) в Internet Explorer? - PullRequest
1 голос
/ 08 июня 2011

Я поддерживаю некоторый код, который имеет слишком много document.write экземпляров.Например, код будет document.write div, затем использовать DOM, чтобы найти этот div, а затем добавить к нему <img>.

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

var node_to_append = document.createElement("div");
//node_name is a hardcoded constant
node_to_append.id = node_name;

var i = 0;
for( i = 0; i < request_urls.length; i++) {
    var image_to_append = document.createElement( "img" );
    image_to_append.width = 1;
    image_to_append.height = 1;
    image_to_append.alt = "";
    image_to_append.src = request_urls[ i ];
    node_to_append.appendChild( image_to_append );
}
//finally, append the div to the HTML doc
document.body.appendChild( node_to_append );

В IE выдается ошибка: «Internet Explorer не может открыть интернет-сайт http://blah.com. Операция прервана».

Мне сказали, что это потому, что мне действительно нужно было использовать document.write.Я надеюсь, что есть альтернатива, которая позволила бы мне использовать вышеупомянутый подход, а не заставлять меня превращать мой узел в строку (например, "") и добавлять его через document.write.Кто-нибудь может предложить решение моей проблемы?

1 Ответ

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

Если в этом коде есть document.writes, то он запускался во время загрузки / анализа страницы, не так ли?Вы должны обернуть свой код в обработчик события window.onload.Более того, используйте событие ready jQuery или другую оболочку lib для dom ready.

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