[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипты не выполняется в IE (((
Marker
Почему в IE этот код не работает? В Опере и Firefox всё норамльно работает, а вот в IE. Подскажите, что не так?

Вот код:
Цитата

...

<div id="inc"></div>

<style>
.reference {width: 50px; height: 16px; border: 1px solid #d7d7d7; border-top-style: none; border-top-style: none; border-left-style: none; text-align: center;}
.start_page {width: 50px; height: 16px; border: 1px solid #d7d7d7; border-top-style: none; border-top-style: none; border-left-style: 1px solid #d7d7d7;}
.page_menu {margin-bottom: 5px; margin-right: 5px;}
.page_menu_hr {text-align: center; width: 100%; height:5px; border-style: dotted; background-color:#f0f0f0; margin:0px;}
</style>

<hr class="page_menu_hr" size=1px color=#d7d7d>

<!-- weapons navigation -->

<table class="page_menu" align="right" cellpadding="0" cellspacing="0">

<td id="page1" class="start_page" align="center" cellpadding="0" cellspacing="0"><a href="java script:load_page_1()">Page 1</a></td>
<td id="page2" class="reference" align="center" cellpadding="0" cellspacing="0"><a href="java script:load_page_2()">Page 2</a></td>
<td id="page3" class="reference" align="center" cellpadding="0" cellspacing="0"><a href="java script:load_page_3()">Page 3</a></td>
<td id="page4" class="reference" align="center" cellpadding="0" cellspacing="0"><a href="java script:load_page_4()">Page 4</a></td>

</table>
<!-- /navigation -->

<script language="JavaScript">
<!--

function load_page_1() {

page1 = '<!--#include virtual="/data/files/weapons/page1.html"-->';

document.getElementById('inc').innerHTML = page1;

// color changing
document.getElementById('page1').bgColor = '#f0f0f0';
document.getElementById('page2').bgColor = '#ffffff';
document.getElementById('page3').bgColor = '#ffffff';
document.getElementById('page4').bgColor = '#ffffff';

};

function load_page_2() {

page2 = '<!--#include virtual="/data/files/weapons/page2.html"-->';

document.getElementById('inc').innerHTML = page2;

// color changing
document.getElementById('page1').bgColor = '#ffffff';
document.getElementById('page2').bgColor = '#f0f0f0';
document.getElementById('page3').bgColor = '#ffffff';
document.getElementById('page4').bgColor = '#ffffff';

};

function load_page_3() {

page3 = '<!--#include virtual="/data/files/weapons/page3.html"-->';

document.getElementById('inc').innerHTML = page3;

// color changing
document.getElementById('page1').bgColor = '#ffffff';
document.getElementById('page2').bgColor = '#ffffff';
document.getElementById('page3').bgColor = '#f0f0f0';
document.getElementById('page4').bgColor = '#ffffff';

};

function load_page_4() {

page4 = '<!--#include virtual="/data/files/weapons/page4.html"-->';

document.getElementById('inc').innerHTML = page4;

// color changing
document.getElementById('inc').innerHTML = page4;
document.getElementById('page1').bgColor = '#ffffff';
document.getElementById('page2').bgColor = '#ffffff';
document.getElementById('page3').bgColor = '#ffffff';
document.getElementById('page4').bgColor = '#f0f0f0';

};

// -->
</script>

...




Спустя 2 часа, 36 минут, 15 секунд (8.03.2007 - 10:01) Timok написал(а):
1) <a href="java script:... - между java и script пробела не должно быть
2) перед всеми новыми переменными ставь var:
JavaScript
  1. var page1 = "...";

Спустя 3 часа, 33 минуты, 51 секунда (8.03.2007 - 13:35) AlexBB написал(а):
Закончу мысль:
Цитата(Timok @ 8.3.2007, 10:01) [snapback]15356[/snapback]
перед всеми новыми переменными ставь var:
... в том случае, если они объявлены внутри функции и предполагаются локальными.

Спустя 3 часа, 38 минут, 29 секунд (8.03.2007 - 17:13) vasa_c написал(а):
Цитата
... в том случае, если они объявлены внутри функции и предполагаются локальными.

Нет, всегда.

<a href="java script:load_page_1()"> меняй на <a href="#" onclick="load_page_1(); return false;">

<script language="JavaScript"> на <script type="text/javascript">

<!-- внутри <script> к чорту

document.getElementById('page1').bgColor = '#ffffff'; на document.getElementById('page1').style.backgroundColor = "#ffffff";

Код
page3 = '<!--#include virtual="/data/files/weapons/page3.html"-->';
document.getElementById('inc').innerHTML = page3;

почему это не будет работать читай www.phpfaq.ru/na_tanke, здесь правда SSI а не PHP, но смысл тот же

Спустя 51 минута, 34 секунды (8.03.2007 - 18:05) Marker написал(а):
Мм, грусно как-то, что не катит, но спасибо вам за помощь ).

Спустя 45 минут, 49 секунд (8.03.2007 - 18:51) vasa_c написал(а):
А что, в FF и Опере катит?

Спустя 22 часа, 51 минута, 41 секунда (9.03.2007 - 17:42) Marker написал(а):
Ага. Катит, просто прекрасно.

Спустя 9 минут, 44 секунды (9.03.2007 - 17:52) vasa_c написал(а):
Так, еще раз.
Динамическая вставка на JS инструкции SSI приводит к ее обработке в FF?

Спустя 2 дня, 21 час, 8 минут, 4 секунды (12.03.2007 - 15:00) Marker написал(а):
ДА, И В ОПЕРЕ ТОЖЕ!

Спустя 4 часа, 14 минут, 13 секунд (12.03.2007 - 19:14) AlexBB написал(а):
Цитата(Marker @ 12.3.2007, 15:00) [snapback]15746[/snapback]
ДА, И В ОПЕРЕ ТОЖЕ!

Какой тяжкий бред у человека.

Спустя 3 минуты, 38 секунд (12.03.2007 - 19:18) Marker написал(а):
Сам ты бред ходячий )). На вот посмотри http://cccpclan.by.ru/files.shtml

Спустя 3 минуты, 19 секунд (12.03.2007 - 19:21) vasa_c написал(а):
Вобщем, Marker, этого не может быть, потому что не может быть никогда.
Ищи у себя ошибки и несоответствия.
Если сумеешь доказать, что
JavaScript
  1. element.innerHTML = '<!--#include virtual ... -->'

приводит к срабатыванию SSI-инструкции на странице в Firefox стандартной сборки, мы все скинемся тебе на памятник в бронзе.

Спустя 6 минут, 30 секунд (12.03.2007 - 19:28) AlexBB написал(а):
Цитата(Marker @ 12.3.2007, 19:18) [snapback]15820[/snapback]
Сам ты бред ходячий )). На вот посмотри http://cccpclan.by.ru/files.shtml

Ну и где мля, на этой странице хоть одна SSI директива внутри JS, умник?
Завязывай с этой травой ... не хорошая она.

Спустя 18 часов, 49 минут, 43 секунды (13.03.2007 - 14:18) vasa_c написал(а):
А, б...ь, точно. Оно же сначала выполняется, а потом передается клиенту. Т.е. в браузере получится:
JavaScript
  1. element.innerHTML = 'Здесь хрен знает что, как результат срабатывания SSI';

Только тогда и смотреть нужно не исходный файл, а "исходный html-код" в браузере.

А ошибка не в этом, а в том, что у тебя есть элемент с id="page1" и все нормальные браузеры на это плюют, а услужливые IE создает переменную с таким именем. А т.к. ты не объявляешь переменные внутри функции, с помощью "var", то происходит попытка записи прямо в DOM-объект, на что IE кстати и говорит - объект не поддерживает данный метод в строчке 84.
Объявляй локальные переменные с помощью var и пытайся не давать им имена одинаковые с idами существующих элементов.

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

Спустя 6 минут, 47 секунд (13.03.2007 - 14:24) AlexBB написал(а):
Цитата(vasa_c @ 13.3.2007, 14:18) [snapback]15860[/snapback]
А, б...ь, точно. Оно же сначала выполняется, а потом передается клиенту.

Да это давно понятно. Поэтому совершенно верно было направление на ссылку "на танке". А чел не внял и начал писать всякую херь.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.