Anzeige

JavaScript funktioniert in FireFox aber nicht in Opera

JavaScript funktioniert in FireFox aber nicht in Opera | PSD-Tutorials.de

Erstellt von 11Spedy11, 16.12.2010.

  1. 11Spedy11

    11Spedy11 Noch nicht viel geschrieben

    Dabei seit:
    20.02.2010
    Beiträge:
    7
    Geschlecht:
    männlich
    JavaScript funktioniert in FireFox aber nicht in Opera
    Hallo,
    ich habe ein kleines Problem. Ich wollte ein JavaScript schreiben bei dem man etwas mit Sternen bewerten kann. Das Script Funktioniert super, aber leider nur wenn ich es in FireFox aufrufe. Im IE oder Opera gehts nicht. Vielleicht wisst ihr was da los ist:

    HTML:
    1. <img name="sterne" src="1.png" border="0" usemap="#Map" >
    2. <map name="Map">
    3.   <area shape="rect" coords="0,0,24,22" onClick="sterne.src='1.png'; vote.value='1'" onMouseMove="sterne.src='1.png'" onMouseOut="if(vote.value=='5'){sterne.src='5.png'} else if(vote.value=='4'){sterne.src='4.png'} else if(vote.value=='3'){sterne.src='3.png'} else if(vote.value=='2'){sterne.src='2.png'} else if(vote.value=='1'){sterne.src='1.png'}" />
    4.   <area shape="rect" coords="24,0,46,22" onClick="sterne.src='2.png'; vote.value='2'" onMouseMove="sterne.src='2.png'" onMouseOut="if(vote.value=='5'){sterne.src='5.png'} else if(vote.value=='4'){sterne.src='4.png'} else if(vote.value=='3'){sterne.src='3.png'} else if(vote.value=='2'){sterne.src='2.png'} else if(vote.value=='1'){sterne.src='1.png'}" />
    5.   <area shape="rect" coords="45,0,70,22" onClick="sterne.src='3.png'; vote.value='3'" onMouseMove="sterne.src='3.png'" onMouseOut="if(vote.value=='5'){sterne.src='5.png'} else if(vote.value=='4'){sterne.src='4.png'} else if(vote.value=='3'){sterne.src='3.png'} else if(vote.value=='2'){sterne.src='2.png'} else if(vote.value=='1'){sterne.src='1.png'}" />
    6.   <area shape="rect" coords="71,0,94,22" onClick="sterne.src='4.png'; vote.value='4'" onMouseMove="sterne.src='4.png'" onMouseOut="if(vote.value=='5'){sterne.src='5.png'} else if(vote.value=='4'){sterne.src='4.png'} else if(vote.value=='3'){sterne.src='3.png'} else if(vote.value=='2'){sterne.src='2.png'} else if(vote.value=='1'){sterne.src='1.png'}" />
    7.   <area shape="rect" coords="95,0,120,22" onClick="sterne.src='5.png'; vote.value='5'" onMouseMove="sterne.src='5.png'" onMouseOut="if(vote.value=='5'){sterne.src='5.png'} else if(vote.value=='4'){sterne.src='4.png'} else if(vote.value=='3'){sterne.src='3.png'} else if(vote.value=='2'){sterne.src='2.png'} else if(vote.value=='1'){sterne.src='1.png'}" />
    8. </map>
    9. <form name="hallo">
    10. <input type="text" id="vote" name="vote" value="1">
    11. </form>
     
    #1      
  2. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    JavaScript funktioniert in FireFox aber nicht in Opera
    AW: JavaScript funktioniert in FireFox aber nicht in Opera

    Hi,

    im IE und im Opera müsste es auch eine Fehlermeldung geben. Dazu musst du z.B. im IE in den Einstellungen den Debug-Modus per Hacken aktivieren und Neustarten. Beim Aufruf deiner Datei müsste dann auch die entsprechende Fehlermeldung folgen. Ist der Fehler im IE korrigiert, dürfte das Script auch im Opera laufen. Einen Debug-Modus im Opera müsste es allerdings auch geben, welcher mir aktuell nicht bekannt ist.
     
    #2      
  3. 11Spedy11

    11Spedy11 Noch nicht viel geschrieben

    Dabei seit:
    20.02.2010
    Beiträge:
    7
    Geschlecht:
    männlich
    JavaScript funktioniert in FireFox aber nicht in Opera
    AW: JavaScript funktioniert in FireFox aber nicht in Opera

    Danke habs: Fehlerkonsole über Opera: Seiteneinstellungen -> Scripte -> Fehlerkonsole anzeigen
     
    #3      
  4. randacek_pro

    randacek_pro Mod | Forum

    Dabei seit:
    09.07.2009
    Beiträge:
    4.747
    Geschlecht:
    männlich
    Software:
    Adobe Geschichten, GIMP und Blender
    Kameratyp:
    Canon (D)SLRs
    JavaScript funktioniert in FireFox aber nicht in Opera
    AW: JavaScript funktioniert in FireFox aber nicht in Opera

    Hallo,
    der Firefox ist immer recht "verträglich" was JavaScript und CSS betrifft.
    Was mir auffällt, wo IE und Opera vielleicht meckern könnten wären zwei Stellen.
    Beispielhaft hier mal eine Stelle, die sich immer wieder wiederholt:
    Code (Text):
    1. onClick="sterne.src='1.png'; [B]vote[/B].value='1'
    2.  und
    3. onMouseOut="if([B]vote[/B].value=='5'){sterne.src='5.png'}..."
    Da das aber auf das Formular "hallo" referenziert, möchten IE und Opera vielleicht eine explizitere Auszeichnung, so etwa:
    Code (Text):
    1. onClick="sterne.src='1.png'; document.hallo.vote.value='1'
    2.  und
    3. onMouseOut="if(document.hallo.vote.value=='5'){sterne.src='5.png'}..."
    Außerdem schreibst du:
    Code (Text):
    1. if(vote.value=='5'){sterne.src='5.png'} [B]else if[/B](vote.value=='4'){sterne.src='4.png'}
    Das mache ich eigentlich in meinen Skripten nie so und bisher hat's immer funktioniert. ^^
    Habe mal die Syntax nachgeschlagen; "else if" wird eigentlich nicht verwendet, nur "else" alleine.
    Wenn du eine weitere/neue Bedingung angibst, leitest du eine neue if-Schleife ein (wenn Feldwert von "vote" = 1, dann 1. png, wenn Feldwert = 5 dann halt 5.png)
    Im Prinzip musst du da kein "else" ("sonst") angeben, was ja eine Ausnahme von der Regel darstellt (wenn Feldwert von "vote" = 1, dann 1. png, sonst [ansonsten] 2.png) sondern du gibst für jeden Fall eine eigene Aktion an.
    Also entweder nur "if" mehrfach oder halt so:
    Code (Text):
    1. if(document.hallo.vote.value=='5'){sterne.src='5.png'} else { if(document.hallo.vote.value=='4'){sterne.src='4.png'} } else { if(document.hallo.vote.value=='3'){sterne.src='3.png'} }
    usw.

    Allerdings ist mir ehrlich gesagt nicht ganz klar, wozu die "onMouseOut"-Aktion gebraucht wird, da doch schon mit dem Klick der Wert im Feld gesetzt wird und wenn ich es richtig verstanden habe, soll das ja nur eine grafische Bewertungsanzeige mit Sternen sein - der Wert würde ja schon nach dem Klick auf den entsprechenden Stern angezeigt werden...
    Ich kenn dein ganzes Projekt ja nicht, also kann es sein, dass mir da noch der Anschluss fehlt :)
    Wenn du diese Aktion aber wirklich brauchst, denke ich, dass eine Unterscheidung statt mit if und else einfacher mit einer anderen Funktion geht, was auch deinen Code verkürzen und übersichtlicher machen würde.
    Ich denke da an "switch".
    Das könntest du einfach einmal in deinem Dokument referenzieren, meinetwegen eine Funktion "Bewertung" und rufst das dann nur noch auf, per
    Code (Text):
    1. onMouseOut="Bewertung();"
    Ich habe mir das für mich selber mal mit anderen Bildern nach gebaut und es funktioniert (auch in Opera), wobei ich wie gesagt die onMouseOut fast als überflüssig empfinde...
    Auf den Code mit "switch" verzichte ich mal fürs Erste, sonst nehm ich zu viel Platz weg :D
    Hoffe, ich konnte ausdrücken, was ich meine - andernfalls bitte nich hauen ;)
    LG
     
    #4      
x
×
×