ошибка прелоадера в ослике

alexey84

phplancer
ошибка прелоадера в ослике

Хочу сделать универсальный прелоадер к аяксу, универсальный, т е чтобы в любом месте всплывал, не привязываясь к текущей структуре документа. В фаервоксе все замечательно работает просто не нарадуюсь, но в проклятом осле выдает, что операция прервана, невозможно подсоединиться к узлу и страницу не грузит. Скрипт срабатывает в самом начале загрузки страницы, вот скрипт
var obj = getElementsByTagName('body')[0];
if( !document.getElementById("preloader") && obj ) {
var cardLab = document.createElement('DIV');
cardLab.setAttribute('id', 'preloader');
obj.appendChild(cardLab);
document.getElementById('preloader').innerHTML='<b>Идет загрузка...</b>';
.................
}
решил пойти другим путем, вместо создания елемента просто засунул его в боди:
document.body.innerHTML='<div id="preloader" style="position:absolute;left:40%;top:20%;border: 1px solid #cccccc;background-color:#eeeeee;padding:15px;font-size:14px;font-weight:bold">Идет загрузка...</div>'+document.body.innerHTML;
в мазиле как всегда все ОК, а в осле элемент создает, а потом опять ошибка.
Тестил на 6 и 7 осле.

Народ как можно исправить эту ошибку?

П.С Билли будь ты проклят! =)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
alexey84
var obj = document.getElementsByTagName('body');
a = document.getElementById('preloa');
a.innerHTML=..........
 

alexey84

phplancer
id="preloader" изначально не существует, когда пользователь сделал какое то дейсвтвие, этот элемент должен динамически создастся, и потом уже работает аякс, после аякса прелоадер убивается, траблу решил, но правда условием работы будет наличие обязательно хотя бы одного дива в верстке, иначе прелоадер не появится
var obj = document.getElementsByTagName('DIV')[1];
if(!document.getElementById("preloader") && obj) {
var cardLab = document.createElement('DIV');
cardLab.setAttribute('id', 'preloader');
obj.appendChild(cardLab);
......
 

zuzmic

Новичок
<a href="javascript:a()">click</a>
<script type="text/javascript">
function a () {
var obj = document.getElementsByTagName('body')[0];
if( !document.getElementById("preloader") && obj ) {
var cardLab = document.createElement('DIV');
cardLab.setAttribute('id', 'preloader');
obj.appendChild(cardLab);
document.getElementById('preloader').innerHTML='<b>Идет загрузка...</b>';
}
}
</script>

Странно у меня такой скрипт работает и в 6, и в 7 IE
 

alexey84

phplancer
у меня есть некий документ, где
<body>
<script>
вызов аякса с прелоадером
</script>
</body>
т е прелоадер вызывается при загрузке документа, а весь текст документа формируется аяксом, вот в таком случае не работает
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
пример zuzmic в onload body
 

AmdY

Пью пиво
Команда форума
а можно сразув вёрстке создать скрытый див, а после с ним работать, показывать, смещать, прятать
 

alexey84

phplancer
Mr_Max
мне в онлоад не катит, там частный случай, просто интересно почему ие не пашет с .....('body')[0]

-~{}~ 10.01.08 13:07:

AmdY
я хочу универсальный, чтобы не зависеть от верстки, в конце концов получил полууниверсальный, это тоже не плохо
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
вообще-то проблема была в отсутсвии document.
в
var obj = document.getElementsByTagName('body'

а пример должен работать во всех случаях
по крайней мере у меня так.

1 вызов ф=ции по онлоаду
2. Вызов ф=ции
3. исполнение самомго джскрипта.

-~{}~ 10.01.08 12:14:

[telepat mode]
Джаваскриптовый внутри тега <body>
[/telepat mode]
 

AmdY

Пью пиво
Команда форума
ИМХО, но не понимю, зачем ajax, если меняется всё сдержимое body, тем более сеошники порвут за такое.
 

AmdY

Пью пиво
Команда форума
получается у тебя грузится страница с пустым боди, а после в него аяксом вставляется контент, тоесть все блоки рассчитываются кажыдый раз. м вместо того чтобы уменьшить трафик и звгрузку сервера, ты используешь аякс только чтобы не было вмдно перезагрузок. при этом лишаешь пользователя возможности сохранять ссылки, при ф5 будет теряться локация, а как будет индексироваться сайт и вовсе тёмное дело.
 

alexey84

phplancer
ты бредишь. какой сайт нафиг индексироваться, я же тебе говорю это CMS. структура у нее такая что там нужна загрузка аяксом
 

AmdY

Пью пиво
Команда форума
лан, твоё дело, тебе виднее, видимо мы недопонимаем друг друга
 

alexey84

phplancer
да мне просто стало интересно, неужели ты разрешишь роботам индексировать cms? =)
 

dimagolov

Новичок
операции с DOM до onload ВСЕГДА череваты боком, так как до onload DOM-а как бы еще нету, он только создается броузером. Более того, вообще ничего не мешает писать в этот момент любое содержимое write-ом, вот именно он заточен на такое.

телепатим: основная идея показать прелоадер ДО того, как загрузиться контент страницы?
Если да, по почему не выводить это как первый блок после <body> средствами php сбрасывая буфер в броузер после вывода прелоадера? как раз загрузка будет идти, а прелоадер уже попадет в броузер.

вопрос: что, раз CMS то индексация поисковиками противопоказана? ссылки в букмарки ставить запрещено и т.д.? что за структура такая что нужна загрузка аяксом (всего, прелоавдера, еще чего)???

п.с. роботы индексируют то содержимое, которое отображается средствами CMS. или тогда что такое CMS в твоем понимании и что в ней могут роботы проиндексировать?
 

Gas

может по одной?
dimagolov
блин, alexey84 имеет ввиду админ-интерфейс, как можно не понять.
 

alexey84

phplancer
в том контексте, что шел выше, cms - имелось ввиду административный раздел
 
Сверху