Linkki:
- <a href="sivut.php" target="sivut" onMouseOver="parent.top.naytaKupla(0);" onMouseOut="parent.top.piilotaKupla();">Etusivu</a>
divi ja itse koodi:
function naytaKupla(id) { var ohjeet = Array( "Ylläpitäjän sivun etusivu", /* ... */); document.getElementById('kupla').innerHTML = ohjeet[id]; document.getElementById('kupla').style.left = 610; document.getElementById('kupla').style.top = 30; document.getElementById('kupla').style.display = 'block'; } function piilotaKupla() { document.getElementById('kupla').innerHTML = ''; document.getElementById('kupla').style.display = 'none'; } ... <div id="kupla" class="topkupla" style="display: none; position: absolute;"></div>
Koodi toimii vain FF:llä mutisematta, muut selaimet (Opera & IE) eivät reagoi ollenkaan tuohon.
Linkki ja koodi ovat ei kehyksissä.
Mikä mättää?
Eipä näytä vastauksia tulevan...
No, olen selvittänyt, että ongelma on tuossa getElementById('kupla')-kohdassa. Sitä en vain ymmärrä, miksi FF tuon kuplan löyttää, mutta Opera ja IE eivät.
lainaus:
Operan JavaScript-konsoli:
http://127.0.0.1/*/menu.php
Event thread: mouseover
Error:
name: TypeError
message: Statement on line 1: Type mismatch (usually a non-object value used where an object is required)
Backtrace:
Line 1 of script
window.parent.top.naytaKupla(0);
At unknown location
[statement source code not available]
Mulla toimii kaikilla selaimilla tuo koodi, eikä mitään virheilmoituksia antanut.
Ettei sulla vaan olis jotain ihme JS koodin rajoitinta tjsp siinä FF selaimessa?
Niin ja, se miksi ihmiset eivät ehkä vastanneet: et kertonut yhtään mitään siitä miten sen pitäisi toimia tai miten se toimii sinulla.
Niinnojoo, olihan tuo kyllä aika hätäisesti kirjoitettu viesti, ilman kunnollista selvennystä koodin tarkoituksesta jne...
Siis ei, Firefox on ainut selain jolla tuo minulla toimii, muut selaimet eivät jonkun takia löydä tuota kupla-diviä
Oiskohan seuraaviin tutustumisesta apua;
document.all document.layers document.getElementById
Anssi V kirjoitti:
document.all
IE-spesifinen.
Anssi V kirjoitti:
document.layers
NS4(!)-spesifinen.
Anssi V kirjoitti:
document.getElementById
No nyt löyty oikea, ai mut kappas, sitähän käytetäänkin jo, ja vieläpä ihan oikein.
Lukemalla tuo alkuperänen koodi vaikuttais ihan toimivalta, en jaksanut alkaa sitä mihinkään kopypasteilemaan, ja jos tuo kerran T.M:llä toimi, voinemme olettaa, että vika on alkuperäisen kysyjän selaimissa/koneessa/sateliitin ylilennon aiheuttamassa magneettikentän muutoksessa.
Hmm... pasteepas vielä koko koodi, sillä tuostahan puuttuu osa taulukosta, ehkä siinä taulukossa on jotain virheellistä koodia tjsp?
Tai sitten yritit näyttää jotain elementtiä jota ei ollut siinä taulukossa?
T.M. kirjoitti:
pasteepas vielä koko koodi
Vielä mieluummin: pistä se veppiin, niin meiän ei tarvi kopypasteta.
Pätkä on täällä, niin kuin koodissa yllä esiintyy
T.M.: mistä taulukosta?
var ohjeet = Array(
Tosta taulukosta.
No siis ÖH, noi koodit on eri sivuilla, ja yrität vaikuttaa toiseen frameen(?), joka ei tietääkseni ole mahdollista.
Toimii hyvin kun pistää JS koodit ja ne linkit ym samalle framelle.
Jaa, siitä taulukosta...
Kyllä pitäisi olla mahdollista, ja onkin.
Tämä postaus auttoi, nyt toimii kun vaihdoin tuon
parent.top.document -- -> parent.frames[0].document --
Koodi ja linkit ovat edelleen eri kehyksissä
Aihe on jo aika vanha, joten et voi enää vastata siihen.