Javascript vanuit flash werkt niet

  • Onderwerp starter Onderwerp starter Cyroq
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Cyroq

Gebruiker
Lid geworden
7 apr 2009
Berichten
180
Goedemorgen,

Ik beheer een website waarin een flash-gallerij staat met foto's. Bij een rollOver vergroten de foto's en vallen deze deels over de html tekst ernaast (het flash element staat in een div met een hogere z-index en heeft een transparante achtergrond).
Nu heb ik een code toegevoegd dat op het moment van de rollOver de z-index hoger moet worden dan de div met html tekst, en bij rollOut weer lager moet worden. Dit is gedaan omdat anders Flash altijd boven html staat, waardoor eventueel onderliggende hyperlinks niet meer werken. Het probleem is dat de code (javascript) niet goed werkt op sommige pc's.
Code:
getURL("javascript:flashDivNaam.style.zIndex = 11;");
Op sommige pc's wordt bij de rollOver een nieuw venster getoond met de tekst "javascript:flashDivNaam.style.zIndex = 11;". Toch wordt javascript wel ondersteund op die pc's want andere javascript oproepen vanuit flash (met name visibility van div's) werken prima. Heeft iemand een idee waar dit aan kan liggen?
Alvast bedankt! :thumb:
 
Op sommige pc's wordt bij de rollOver een nieuw venster getoond met de tekst "javascript:flashDivNaam.style.zIndex = 11;". Toch wordt javascript wel ondersteund op die pc's want andere javascript oproepen vanuit flash (met name visibility van div's) werken prima
Dit heb ik zelf ook wel eens, als ik javascript 'injecteer' via de browser-balk. En om eerlijk te zijn weet ik niet precies waarom (overgens is mijn flash-kennis extreem slecht, maar, kan het door het 'getUrl()' komen?).


maargoed, wat je alsnog even kan proberen: omdat je dit gebruikt:
Code:
flashDivNaam.
kan het zijn dat het verkeerd wordt aangeroepen. Probeer het zo eens:
[JS]getURL("javascript:document.getElementById('flashDivId').style.zIndex = 11;");[/JS]waarbij flashDivId het ID is van je flash-div; bijvoorbeeld
HTML:
<object bla='bla' id='flashDivId'>



:thumb:
 
Laatst bewerkt:
Thanks!
De ID van de div was FlashDivNaam (of eigenlijk niet, maar in dit geval beter te begrijpen ;)). Ik heb nu het hele document.getElementById gedeelte toegevoegd, én dit in een aparte functie gezet op mijn html pagina (dit scheen ook nog eens problemen op te leveren: Flash kan soms geen directe javascript uitvoeren en moet met een omweg werken).
Ik moet even wachten tot mijn 'contactpersoon' die de error elke keer krijgt de site heeft gezien, ik ben benieuwd :)
 
Het is even geleden, maar ik krijg net te horen dat het nog steeds niet werkt op elke pc. Ik gebruik het volgende actionscript:
Code:
on (rollOver) {
	getURL("javascript:fotoRollOver()");
}
En het javascript:
[JS]function fotoRollOver() {
document.getElementById('flash').style.zIndex = 11;
}[/JS]
Hierbij is 'flash' het ID van de div. Bij een rollOut wordt de z-Index op 9 gesteld. Op sommige computers gebeurd hier dus niets; de div blijft onder de tekst zitten (de div met tekst heeft z-Index 10).
Het javascript direct in de url van AS te zetten werkt trouwens net zo min... Het is toch raar dat de z-index soms niet wordt aangepast terwijl andere javascriptfuncties die vanuit Flash worden aangeroepen wel werken.
 
Op sommige computers gebeurd hier dus niets;
Het javascript direct in de url van AS te zetten werkt trouwens net zo min... Het is toch raar dat de z-index soms niet wordt aangepast terwijl andere javascriptfuncties die vanuit Flash worden aangeroepen wel werken.
Het klinkt dan eerder een browser-compatibility probleem - niet alle browsers ondersteunen alle code (zoals IE), of ondersteunen het anders (zoals, pam pam paaam, IE)

In welke browsers werkt het wel, en in welke juist niet?


:thumb:
 
Laatst bewerkt:
Tja, het is inderdaad IE. Ik weet helaas niet welke versie, want bij mij heb ik geen problemen binnen IE (versie 8). Is hier misschien een fix voor?
 
Als het IE is, zal het (bijna...) zeker daaraan liggen. IE is de nachtmerrie van elke programeur!

Anywho, zet eens een voorbeeld online, of check het zelf eens in andere browsers (dat is, firefox, chrome, safari, opera, etcetera). Ook checken in oudere IE-versies. Waarschijnlijk werkt het wel in deze browsers. Als je t online zet, kan ik het ook voor je doen, mocht je niet al deze browsers willen instaleren ;)
 
Nou als jij toch alle browsers geïnstalleerd hebt sla ik je aanbod niet af ;) Ik heb het hier op Firefox, Chrome en IE8 getest, en geen problemen ondervonden. Je kan de site hier vinden, het gaat om de foto's rechts die bij een rollOver bóven de tekst moeten komen. Waarschijnlijk herken je de site wel uit een ander topic ;)
Als het nou alleen in oudere versies niet werkt geloof ik het eigenlijk wel. Bezoekers moeten maar updaten of gewoon geen IE gebruiken :P
 
Okay, hier wat bevindingen:
Opera 9.63 en 10 werken goed.
Safari werkt ook
Chrome doet ook gezellig mee.
Firefox 1.08, 1.5 en de laatste (3.5.nogwat) doen het allemaal super
dan naar de lelijke eendjes van de familie:
IE8 werkt goed, maar compatibiliteits-modus doet t weer fout.
IE7 werkt niet, de foto komt lager dan de text
IE6 laat ook foto's onder de text zien, EN een lelijke grijze balk (png plaatje toevallig?)
IE < 6 ga ik niet eens proberen ;)

Dit zal dus inderdaad aan IE liggen welke onder #8 geen (goede) support voor zIndex had. Tsja, niet veel aan te doen. Zoals je zelf al zei, updaten naar de nieuwste versie - dit zal waarschijnlijk in de loop der tijd wel bij de meeste mensen gebeuren. Of tenminste, dat hopen we :p.


:thumb:
 
Laatst bewerkt:
Bedankt voor de resultaten! Misschien moet ik ze ook een keer allemaal installeren :P
Ik denk dat ik het dan zo maar laat zitten. Is er een manier om te kunnen herkennen welke versie browser de gebruiker heeft? Dan kan ik misschien binnen de css beslissen of de tekst altijd onder de foto staat (z-index 9 of lager) en in andere gevallen wordt het geregeld door Flash. Jammer voor de 'oude' gebruikers dat de link dan niet werkt, er zijn andere manieren om bij de pagina te komen. Foto's die onder de tekst verdwijnen is lelijker denk ik.
Die grijze balk komt inderdaad door een png. Als het goed is zit er een png fix in, ik zal dat nog even controleren.
 
Ik denk dat ik het dan zo maar laat zitten. Is er een manier om te kunnen herkennen welke versie browser de gebruiker heeft?
Ja, maar browser-detectie werkt extreem slecht. Ik zou het zo laten als ik jou was, maar natuurlijk gaat niemand je tegenhouden ;) Je kan dan gewoon zoeken op javascript browser detect in google.

Dan kan ik misschien binnen de css beslissen of de tekst altijd onder de foto staat (z-index 9 of lager) en in andere gevallen wordt het geregeld door Flash.
Wat mischien een betere oplossing is: conditional comments. Dit zijn tags die (in IE tenminste) soms wel en soms niet werken. Bijvoorbeeld: http://www.quirksmode.org/css/condcom.html (goede link). Mischien kan je daar wat mee :)



:thumb:
 
Thanks! Ik probeer IE7 te downloaden om te testen of mijn fix werkt, maar ik kan hem niet installeren omdat ik IE8 al heb... Hoe kreeg jij dit voor elkaar? :P
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan