Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работает в IE, не работает в Opera (https://javascript.ru/forum/misc/1044-rabotaet-v-ie-ne-rabotaet-v-opera.html)

SunYang 22.02.2008 00:13

Работает в IE, не работает в Opera
 
Во время изученя JS возникла проблемка. Некоторые скрипты не работают в опере, как сделать скрипт универсальным под IE и под оперу?

Есть самый простой скрипт:
<table class="trclass">
<tr>
<td>
<h1 ID="myheader">Puch here</h1>
</td>
</tr>
</table>

<script>
function myheader.onclick() {
setInterval('alert("Привет")', 500);

}
</script>

Так вот при нажатии на текст в таблице кнопкой мыши окно alert() в IE вылетает, а в опере бесполезно.
И так со многими скриптами...
Что делать?
Спасибо.

Kolyaj 22.02.2008 09:37

Цитата:

Сообщение от SunYang
Что делать?

Вместо
Код:

function myheader.onclick() {
setInterval('alert("Привет")', 500);

}

писать
Код:

document.getElementById('myheader').onclick = function() {
  ...
}


Phoenix 22.02.2008 10:27

Или

<table class="trclass">
<tr>
<td>
<h1 ID="myheader" onClick='clicc()'>Puch here</h1>
</td>
</tr>
</table>

<script>
function clicc() {
alert("Привет");

}
</script>

Гость 22.02.2008 11:32

Спаибо. Заработало

Oxanita 25.06.2008 15:30

Добрый день!
Помогите, пожалуйста, разобраться: как можно сделать этот скрипт универсалным. Поскольку в Опере он уже не работает, и я так подозреваю, что еще в многочисленных браузерах работать тоже не будет, а хотелось бы. Может, есть какое универсальное решение?
(Я ваще-то привыкла сама во всем разбираться методом проб и ошибок, но в данном случае, реально, нет возможности такой).
Заранее спасибо за советы!

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
browserName = navigator.appName;
browserVer = parseInt(navigator.appVersion);

ns3up = (browserName == "Netscape" && browserVer >= 3);
ie4up = (browserName.indexOf("Microsoft") >= 0 && browserVer >= 4);

function doPic(imgName) {
if (ns3up || ie4up) {
imgOn = ("" + imgName);
document.mainpic.src = imgOn;
}
}
// End -->
</script>

(что делает: на странице таблица, в которой куча мелких картинок и одна ячейка для картинки крупной. При "нажатии" на мелкую картинку в этой ячейке высвечивается она же, но укрупненная до видимого размера. В ИЕ работает, в Опере точно нет).

Phoenix 25.06.2008 16:14

я могу такой код предложить.. Если правильно понял задачу:

<script>
function big_show(a_src){
	document.getElementById("big").src=a_src;
}
</script>
<table border='1'>
<tr><td><img src='1.gif' width='50' onClick="big_show(this.src)"></td>
<td><img src='2.gif' width='50' onClick="big_show(this.src)"></td>
<td><img src='3.jpg' width='50' onClick="big_show(this.src)"></td>
<tr><td colspan='3'><img  id='big'>
</table>

Oxanita 25.06.2008 16:40

ой. спасибо! Оно не совсем то, что нужно, но уж теперь-то я попробую сама поковыряться в нем.
Там есть отдельные графические файы и для маленьких, и для больших картинок. Но сейчас попробую адаптировать к своей задаче.

Phoenix 25.06.2008 16:44

Тогда все просто... делай, допустим, маленький файл с префиксом _s... А когда показываешь большой, то просто его убирай и все.

Если надо, потом могу скинуть код как это программно делается.

Phoenix 25.06.2008 19:52

<script>
function big_show(a_src){
	a_src=a_src.replace("_s","");
	document.getElementById("big").src=a_src;
}
</script>
<table border='1'>
<tr><td><img src='1_s.gif' width='50' onClick="big_show(this.src)"></td>
<td><img src='2_s.gif' width='50' onClick="big_show(this.src)"></td>
<td><img src='3_s.jpg' width='50' onClick="big_show(this.src)"></td>
<tr><td colspan='3'><img  id='big'>
</table>

модифицировал код.... теперь при загрузке надо использовать файлы например:
3_s.jpg
а большой файл под названием
3.jpg

Злобный Кыс 26.06.2008 15:57

я, когда писал скрипт-галерею, хотел сделать что-то подобное. получилось вот так


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