Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт неправильно работает в FF (https://javascript.ru/forum/misc/8749-skript-nepravilno-rabotaet-v-ff.html)

InviS 11.04.2010 04:09

Скрипт неправильно работает в FF
 
Ребят, подскажите, пожалуйста, что неправильно на этой страничке:
http://invis.emaxihost.com/temp/dz/.
Во всех браузерах все выполняется, а в FF не хочет выполняться и ошибок тоже не выдает... С чем это может быть связано?

Aetae 11.04.2010 04:53

console.log() (ну или alert()) вам в руки, и садитесь за отладку. Никто за вас отлаживать ваш же скрипт не будет.
Могу лишь намекнуть, что раз ошибок нет, то скорей всего их действительно нет) т.е. просто какие-то важные для работы скрипта данные не получаются, не передаются или равны нулю.

Кстати, самая частая ошибка: любые значения задаваемые через style должны быть обязательно с указанием размерности: px, em, pt итд.

Gozar 11.04.2010 10:27

InviS,
Это связано с тем что Вы пишите устаревший или не кроссбраузерный код, читайте про ифреймы тут: http://javascript.ru/ajax/transport/iframe

InviS 11.04.2010 13:28

Да это простейшая работа лабораторная. Я не собираюсь ничего на сервер передавать и т.п. Ну насколько я понял.
Нашел в чем ошибка... Вот функция, которая прописана во фрейме:
function secondClick() {  // обработчик запуска второй строки
        var second=parent.document.getElementById("second").value;
        RightIndent=-second.length*20;  // 20px - размер шрифта
        var obj=document.getElementById("secondout");
        obj.style.right=delpx(RightIndent+"px");  // начальный отступ
        obj.innerHTML=second;
        secondId=setInterval(ScrollLeft,timeout); // запускаем исполнение функции ScrollLeft через интервал --> движение
      }

работает все вплоть до setInterval()... Да и setInterval работает везде, кроме FireFox! Писал даже
setInterval(function(){alert('111');}, 1000);

И все равно работало везде, кроме FireFox. Что за баг? почему ФФ не хочет исполнять setInterval?

Gozar 11.04.2010 13:35

Цитата:

Сообщение от InviS (Сообщение 51116)
И все равно работало везде, кроме FireFox. Что за баг? почему ФФ не хочет исполнять setInterval?

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

InviS 11.04.2010 16:33

я прочитал, но ничего, что ответило на мой вопрос и исправило бы это я не нашел. Все браузеры исполняют, а ФФ не хочет - и виноват iframe?
Простого решения, без замены iframe на что-то другое не существует?

Gozar 11.04.2010 16:56

Цитата:

Сообщение от InviS (Сообщение 51138)
я прочитал, но ничего, что ответило на мой вопрос и исправило бы это я не нашел. Все браузеры исполняют, а ФФ не хочет - и виноват iframe?

нет iframe не виноват. Вы неправильно обращаетесь к iframe.

Вот это:
<button onclick="window.frm.stop("first"); window.frm.firstClick();">Запустить!</button>

Заменить на вот это:
<button onclick="document.getElementById('frm').contentWindow.stop("first"); document.getElementById('frm').contentWindow.firstClick();">Запустить!</button>


И оно заработает в FF, а после этого идёте по ссылке что я дал и читаете до тех пор, пока не поймете или не заучите или до полного озарения.


Часовой пояс GMT +3, время: 06:19.