URL: https://www.overclockers.at/coding-stuff/problem_mit_variablenweitergabe_an_flash_113073/page_1 - zur Vollversion wechseln!
hallo
folgender code:
Code:<HTML> <HEAD> <TITLE>OARSCH</TITLE> </HEAD> <BODY bgcolor="#FFFFFF"> <script language=javascript> function passflash(play) { window.document.oarsch.SetVariable("oarsch",play); } </script> <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="550" HEIGHT="400" id="oarsch" ALIGN=""> <PARAM NAME=movie VALUE="OARSCH.swf" swLiveConnect=true> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="OARSCH.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="OARSCH" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> </OBJECT> <a href="#" onMouseUp="javascript:passflash('1');" onMouseOver="passflash('2');">boano</a> </BODY> </HTML>
onmouseup="javascript jedenfalls falsch, hier gehoert kein javascript: hin .. gehoert genauso wie onmouseover.
Moeglicherweise ist document.oarsch in Opera nicht definiert? alert(document.oarsch) ? Hier gehoert document.getElementById('oarsch').<etc.etc.> hin. Eigentlich.
ok also javascript: weg hat keine änderung gebracht, btw: wozu schreibt man das eigentlich manchmal hin?
ob onMouseUp oder Over is eigentlich egal, es geht nur um den event.
documentgetelementbyid dachte ich auch, hat auch nix gebracht, beim altert gibts keine ausgabe.
Wenns beim alert() keine Ausgabe gibt, dann ist reflektiert es quasi das unter document.oarsch nunmal nicht im Document-Tree ist. Desshalb nimmst du document.getElementById, damit findest du es.
javascript: ist ein sog. Pseudo-Handler, wurde nur in HREF-Attributen verwendet, ist ein relikt aus NS4 Zeiten, denke ich mal. Heutzutage verwendet man einfach onklick/onmouseover/onmouseout etc., das sind schon die Javascript-Handler, da rein kommt nur javascript-Code, kein javascript: Pseudo-Protokoll-Handler
mit getelementbyid gehts im IE genau so, in opera wieder nicht...
danke für die erklärung, also kann ich mir das in zukunft ersparen. apropos ersparen, wann muss ich die <script...> tags setzen und wann nicht?
Moeglicherweise liegt das Problem daran, das Opera, warum auch immer, das Flash Object nicht einfach so scripten kann/laesst.
Wie du vielleicht selber siehst, wenn du onmouseover/onclick setzt, bearbeitest du direkt ein Event eines Objekets, d.h. du gehst davon aus, wenn der Benutzer seine Maus ueber das Element faehrt, wird dein Javascript-Code beim eintreten des Events ausgefuehrt.
Bei <script> definiertst du einfach nur Javascript code, der unter Umstaenden gar nicht gleich ausgefuehrt wird, weil du ihn spaeter brauchst.
Beispiel
Code:<a href="url.html" onclick="window.open(this.href, 'popup', ''); return false;">Link</a>
D.h. du definiertst im Script einmal Funktionen, die du beliebig oft ausfuehren kannst, ohne sie jedesmal neu zu definieren. Ist schon praktisch wenn es komplexere Sachen sind.Code:<script> function openPopup(href) { window.open(href, 'popup', ''); return false; } </script> ... <a href="url.html" onclick="return openPopup(this.href);">Link</a>
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025