Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Не удалось открыть узел http://.......


Автор: Ghirik 21.2.2008, 08:04
Что за фигня? Кто знает?

Добавил к форуму SMF, в главный шаблон, такие стили:

Код

<style type="text/css">
html { height: 100%; }
body { margin: 0; padding: 0; height: 100%; }
* html body { overflow: hidden; }
* html .anime_left { position: absolute; }
* html .anime_right { position: absolute; }
.anime_left, .anime_right { position: fixed; top: 0px; height: 10%; width: 1px; background: #A8A; overflow: hidden; }
.anime_left { text-align: right;}
.anime_right { right: 0px; }
* html #window_body { height: 100%; overflow-y: scroll; margin: 0px; }
</style>
<!--[if IE]>
<style type="text/css">
html, body {  overflow: hidden; }
.anime_right { right: 16px;}
</style>
<![endif]-->


#window_body, это основной div, который открывается сразу после <body>, и закрывается перед </body>

На экспериментальной странице такое форматирование работает без ошибок(в IE6 то же). На сайте, в FF и Опере -  всё нормально, в консоли ошибок нет. А IE6 практически полностью загружает страницу (судя по времени) и потом выкидывает окно, вроде алерта, с текстом указанном в заголовке.

Кто нить знает такой баг?
Если без ссылки не разобраться, могу дать.

Модераторы, не спешите переносить тему в верстку, чую здесь скрипты виниваты...


Автор: AKS 21.2.2008, 08:19
Цитата(Ghirik @  21.2.2008,  08:04 Найти цитируемый пост)
...чую здесь скрипты виниваты...

Видел подобную ошибку, когда еще не полностью "загруженному" элементу пытаются "приделать" детишек. Примерно так:
Код

<body>
<script type='text/javascript'>
document.body.appendChild(document.createElement('span'));
</scirpt>
</body>



Автор: Ghirik 21.2.2008, 08:26
У меня используется такая заглушка на время отработки начальных скриптов:

Код

<script type="text/javascript">
<!-- // --><![CDATA[

function mixin(obj1, obj2) {
    for    (var n in obj2) obj1[n] = obj2[n];
}

var divReload = document.createElement("div");
divReload.id = "reload";
mixin(divReload.style,{position: "absolute", top: "0px", left: "0px", zIndex: 100, width: "100%", height: "100%",  background: "#CFCED9"});
document.body.appendChild(divReload);

function logoImg(obj) {
    var imgReload = document.createElement("img");
    imgReload.src = obj.src;
    imgReload.style.position = "absolute";
    imgReload.style.top = obj.offsetTop + "px";
    imgReload.style.left = obj.offsetLeft + "px";
    $("reload").appendChild(imgReload);
}

// ]]>
</script>


Этот код вставлен сразу после <body><div id="window_body">. Функция logoImg() вызывается по событию onload изображения логотипа. Это не правильно(для случая кэширования изображения), но пока не важно.

Так вот, одновременно с вылетом ошибки, успевает появиться этот созданный див. А при нажатии кнопки "Ok" в окне ошибки, всё исчезает, появляется страница ошибки браузера.

Добавлено через 1 минуту
Цитата

Видел подобную ошибку, когда еще не полностью "загруженному" элементу пытаются "приделать" детишек. Примерно так:


Во!!! Конкретно этот случай!  smile

Добавлено через 2 минуты и 15 секунд
Но странно, до добавления стилей, всё работает!

Добавлено через 12 минут и 7 секунд
AKS, спасибо за указанный путь, но я не могу придумать, как корректно прикрыть это безобразие формирования таблиц. display: none косячит в Опере, она самая умная - если none, значит и загружать не надо. smile

Добавлено через 14 минут и 5 секунд
А... Наверное можно не создавать динамически, а прописать жестко этот див... Счас попробую....

Автор: AKS 21.2.2008, 08:41
Цитата(Ghirik @  21.2.2008,  08:26 Найти цитируемый пост)
как корректно прикрыть это безобразие формирования таблиц.

Каких таблиц?

Автор: Ghirik 21.2.2008, 08:52
Всё! 
AKS, спасибо ещё раз, прописал этот див после <body>, ошибка исчезла, вопрос решен. 
AKS++ smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)