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

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

sTub 02.09.2008 16:44

в опере скрип не работает
 
скрипт работает в мозиле и IE, но в опере работать никак не хочет... помогите пожалуйста

Код:

<SCRIPT LANGUAGE="JavaScript">
var visibleVar="null";
function init(){
if (navigator.appName == "Netscape") {
layerStyleRef="layer.";
layerRef="document.layers";
styleSwitch="";
visibleVar="show";
}else{
layerStyleRef="layer.style.";
layerRef="document.all";
styleSwitch=".style";
visibleVar="visible";
}
}
function showHideLayerSwitch(layerName){
if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')){
hideLayer(layerName);
}else{
showLayer(layerName);
}
}
function showLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
}
function hideLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
}
function showLayer1(layerName){
if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')){
showLayer(layerName);
}
}
function hideLayer1(layerName){
if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility == visibleVar')){
hideLayer(layerName);
}
}

</SCRIPT>

скрипт на дополнительное меню

Kolyaj 02.09.2008 21:24

Если вы видите в скрипте такие слова как: Netscape, document.all, document.layers, то выкидывайте такой скрипт сразу, не мучайтесь.

sTub 03.09.2008 01:10

перерыл много сайтов в поисках этого скрипта, аналогов подходящих мне не нашёл, с этим скриптом вообще нельзя ничего сделать?

Kolyaj 03.09.2008 09:35

Можно, переписать.

sTub 03.09.2008 20:27

мои познания слишком скудны для этого, не сможешь помочь?

pimple 20.01.2009 20:27

Не работает меню из allwebmenus
 
Други, помогите!
не работает меню сделанное в программе allwebmenus - там на страницу вставляется код
<!-- ******** BEGIN ALLWEBMENUS CODE FOR menu ******** -->
<img name='awmMenuPathImg-menu' id='awmMenuPathImg-menu' src='./awmmenupath.gif' alt=''><script type='text/javascript'>var MenuLinkedBy='AllWebMenus [2]', awmBN='520'; awmAltUrl='';</script><script src='menu.js' language='JavaScript1.2' type='text/javascript'></script><script type='text/javascript'>awmBuildMenu();</script>
<!-- ******** END ALLWEBMENUS CODE FOR menu ******** -->

и есть файл menu.js

Но в Опере оно не открывается, хотя в остальных броузерах - легко!
что делать!??!?!

x-yuri 21.01.2009 22:12

Цитата:

мои познания слишком скудны для этого, не сможешь помочь?
задачу опиши

Цитата:

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

XPyCT 27.02.2009 13:51

Короче есть такой несложный код:

<html>

<button id=but1 onclick="fnc_open()">Open table</button>
<table border="1" width="300" height="100" id="table1">
	<tr>
		<td>1-table</td>
	</tr>
</table>

<script type="text/javascript">
<!--
var fl1 = 0
function fnc_open() {
	if (fl1 == 0) {
		document.getElementById('table1').height = 200;
		fl1 = 1;
	} else {
		document.getElementById('table1').height = 300;
		fl1 = 0;
	}
}
//-->
</script>
</html>


Все в нем вроде бы работает, но вот таблица не меняет своих параметров (в частности высоту).

Андрей Параничев 27.02.2009 14:56

document.getElementById('table1').style.height

XPyCT 27.02.2009 23:43

Блин, от души!!! Выручили... Правда мог и сам догадаться, мелочь такая, а не работает :) И все же огромное спасибо!!!


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