Autor Zpráva
Zyx
Profil *
Dobrý den,

měl bych malý dotaz ohledně Javascriptu. Mám velice jednoduchou funkci (viz. níže), kterou volám pomocí události onmouseover. Funkce slouží k přepínání stylů u tagu <div>. Problém je v tom, že v IE vše funguje, ale ve Firefoxu nikoliv. Pokud někdo víte, čím by to mohlo být, uvítal bych jakékoliv připomínky.


function banner_on() {
document.getElementById ("banner").className = "banner_on";
}

volání funkce: <div id="sky" onmouseover="banner_on()">
peta
Profil *
www.volny.cz/peter.mlich/ - to je zmena stylu
nahore si klikni jiny styl a okopiruj script

zmena obrazku(classname) to resi
jakpsatweb - zdokonalene odkazy

A je docela mozne, ze ti to nefunguje kvuli podtrzitku banner_on() nebo v CSS
Zyx
Profil *
Děkuji za reakci, ale s podtržítky to bohužel nesouvisí.


Vyzkoušel jsem další možnosti změny buď stylu nebo jen hodnoty visibility a ani jedna ve Firefoxu nefunguje, v IE to jde.

Příklady uvádím níže:

1.
onmouseover="document.all.banner.style.visibility='visible'"

2.
onmouseover="document.all.banner.className='banner_on'"
los
Profil *
Namiesto document.all.banner používaj document.getElementById ("banner").
Zyx
Profil *
Vím, že bych měl použít syntaxi document.getElementById ("banner"), ale to je to samé jako v té funkci v mém prvním příspěvku, ve Firefoxu to nefunguje.
los
Profil *
Tak to máš chybu niekde inde, pretože mne napríklad toto vo Firefoxe funguje:
[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Test</title>
<style type="text/css">
.abc-hover { background: red; }
</style>
<script type="text/javascript">
function test_on ()
{
document.getElementById ("abc").className = "abc-hover";
}

function test_off ()
{
document.getElementById ("abc").className = "";
}
</script>
</head>
<body>
<div id="abc" onmouseover="test_on()" onmouseout="test_off()">test</div>
</body>
</html>[/code]
Zyx
Profil *
hmm, tak to je úplně stejně provedené, jako to mám já, to je divné, to bude zase nějaká ptákjovina, ale jaká ??? :-))))
můžeš se mrknout sem: www.realmaxx-reality.cz
když najedeš myší na ten sky banner vpravo, měla by se uprostřed pod menu objevit větší obdoba toho banneru, vše je ve zdrojáku stejně jako to máš ty.
los
Profil *
Pravdepodobne ten flash, ktorý je vnorený v dive odchytávajúcom mouseover, neposúva udalosť mouseover vyššie. Keď dáš myš nad ten banner a zaskroluješ, tak tam nejaký ďalší flash vyskočí.
Zyx
Profil *
To je fakt, takže další rozdílná interpretace kódu mezi IE a Firefoxem. Jelikoš nejsem odborník na JavaScript a spíš se ho snažím nepoužívat, resp. používám ho jen když není zbytí, tak to asi budu muset nechat tak. Jedině zkusit CSS a událost a:hover jestli to nějak půjde.
peta
Profil *
Zyx
Ptakovina je, ze odkaz na testovaci stranku nedas hned a nenapises vypis JS konzoly.

Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Chyba při parsování hodnoty vlastnosti 'width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/index.php
Řádek: 0
Chyba: Neznámá vlastnost 'behavior'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/menu.css
Řádek: 77
Chyba: Neznámá vlastnost '_top'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/menu.css
Řádek: 43
Chyba: Neznámá vlastnost '_width'. Deklarace vynechána.
Zdrojový soubor: http://www.realmaxx-reality.cz/menu.css
Řádek: 30

A to jsem jenom spustil stranku ve FF.
Mam FF nastaveny tak, aby FLASH nezobrazoval, protoze flash zpusobuje problemy s viry. Ne mozna na tve strance, ale staci 1 takova...
Zobrazil se mi jakysi zablokovany flash, JS konzola cista, ve FF.
V IE ta stranka vubec nechce naskocit. Chova se to, jako bys tam mel 100k obrazku. Coz samozrejme zas mam zablokovane, na to nemam cas cekat 5 minut na stranku...
peta
Profil *
Jinak jsi rikal, ze jsi zrusil podtrzitka a ja tem vidim..
onmouseover="document.all.banner.className='banner_on'"
Takze nevim, co si mam o tom myslet. Ja bych zrusil vsechny a udelal jednoduchou demo stranku.
Zyx
Profil *
To Peta: Ano zrušil jsem je, ale nepomohlo to, tak jsem je tam zase vrátil.
Zyx
Profil *
Tak jsem to už vyřešil. Nepoužiju javascript onmouseouver, ale napsal jsem to v actionscriptu a jde to. Flash má tu výhodu, že alespoň funguje všude stejně, což je tedy můj subjektivní názor a zkušenost.

Děkuji za připomínky, navedli mě na funkční řešení.
peta
Profil *
"Flash má tu výhodu, že alespoň funguje všude stejně"
To tvrdis ty. Prave jsem ti napsal, ze mi se mi Flash nezobrazuje. Cili ta stranka je v podstate nepouzitelna.
Zyx
Profil *
Patříš mezi 11% uživatelů, kteří nemají nainstalovaný flash player, ale já měl na mysli, že když už Flash běží, tak všude stejně a to je dost zásadní rozdíl, JavaScript se dá taky vypnout a nebo stačí nastavit jen vyšší úroveň zabezpečení a nefunguje. Takže já dávám přednost flashi a javascript používám jen, když nelze jinak.
Bubák
Profil
ale já měl na mysli, že když už Flash běží, tak všude stejně
A co různé verze flash playeru, to jsi ještě nezažil, co to pak dokáže, přesněji nedokáže?
Toto téma je uzamčeno. Odpověď nelze zaslat.