|
Почему рушится ИЕ (задачка на подумать)
Решил вынести отсюда в отдельную тему задачку, которая в свое время выносила мне мозг.
Попробуйте открыть в ИЕ следующую страничку <html> <head> <base href="/" /> <script type="text/javascript"> var head=document.documentElement.firstChild; // Есть и другие варианты получить head. Кому как удобнее. var js=document.createElement('script'); js.type='text/javascript'; js.src='script.js'; head.appendChild(js); </script> </head> <body> </body> </html> Небольшие хинты, которые сэкономят время в случае заинтересованности: 1. Если ИЕ уже порушился, то обновлять страницу бесполезно, даже если она была изменена. Нужно перезагружать ИЕ. 2. Чтобы избавится от пункта 1, можно открывать проблемную страницу в iframe. И еще один хинт: проблема тут на стыке сразу двух багов. Если кто-то видел, как я это уже описывал, просьба попридержать :) |
ты забыл указать, что ie6 рушится? А ie7, кстати, просто не подгружает (запускает) script.js
p.s. прикрепи, плз, исходники ie6, без них тяжело как-то думается :yes: |
После прописывания
<base href="/" />IE6 Перестал находить файл, указанный в адресной строке (Internet Explorer cannot open the Internet Site [url]), а не файл подключаемого скрипта. Появилось предположение, что в аттрибуте href нежно указывать полный путь к html документу(http://domain.zon/doc.html). После этого скрипт стал загружаться, но ИЕ всё равно падал(!). Судя по сообщению (Internet Explorer cannot open the Internet Site [url]) это действительно баг ИЕ, т.к. html-то мы открыли(скрипт подключился), а в сообщении пишет совсем другое. |
Если же мы перенесём наш скрипт в body, баг пропадает...
|
Чтобы не смущало отсутствие подключаемого скрипта, можно так
<html> <head> <base href="/" /> <script type="text/javascript"> var head=document.documentElement.firstChild; var js=document.createElement('script'); js.type='text/javascript'; js.src='http://javascript.ru/forum/images/ca_serenity/misc/scripts.js'; head.appendChild(js); </script> </head> <body> </body> </html> |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
<html> <head> <base href="http://www.yandex.ru/" /> <script type="text/javascript"> var head=document.documentElement.firstChild; var js=document.createElement('script'); js.type='text/javascript'; js.src='http://javascript.ru/forum/images/ca_serenity/misc/scripts.js'; head.appendChild(js); </script> </head> <body> </body> </html>Рушится. |
Цитата:
|
Цитата:
http://www.yandex.ru/ и http://javascript.ru/... Найди 10 отличий называется... Вот мой html, при котором ие7 грузит скрипт <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html> <head> <base href="http://cs/test/test.html" /> <script type="text/javascript"> var head=document.documentElement.firstChild; var js=document.createElement('script'); js.type='text/javascript'; js.src='script.js'; head.appendChild(js); </script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head> <body> test </body> </html> Домены должны совпадать, как ты считаешь? |
Часовой пояс GMT +3, время: 14:27. |
|