Warum funkioniert mein Javascript nicht im Opera?
jenskie
- javascript
0 Felix Riesterer0 Jörg Peschke0 jenskie0 wahsaga0 Siechfred0 Felix Riesterer
Hallo, ich möche bei mouseover der Ebene "info", die Ebene "text" einblenden. Das funkioniert im I.E und im Firefox. Aber warum nicht im Opera? Das Script hab ich aus Dreamweaver genommen, da ich nur kleine Grundkenntnisse im Progammieren hab, und kein Javascript kann. Kann mir jemand weiterhelfen?
<div id="text">
<img src="../img/texte/text_diplom.gif" width="102" height="68" alt=""></img>
</div>
<div id="info">
<a href="javascript:;" onmouseover="MM_showHideLayers('text','','show')" onmouseout="MM_showHideLayers('text','','hide')">
<img src="../img/info.gif" width="32" height="7" alt="">
</img>
</a>
</div>
Lieber jenskie,
was ist bitteschön das hier?
<img src="../img/texte/text_diplom.gif" width="102" height="68" alt=""></img>
Wenn Du HTML4 schreibst, dann lasse das </img> weg! Bei XHTML schreibst Du bitte am Ende des IMG-Elements "/>"! Nimm am Besten gleich die letztere Schreibweise:
<img src="../img/texte/text_diplom.gif" width="102" height="68" alt="" />
ich könnte mir vorstellen, dass Opera das hier nicht mag:
<a href="javascript:;"
Nimm als Verweisziel doch href="javascript:void(0);"!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo,
Kann mir jemand weiterhelfen?
Wenn Du den JS-Code dazu postest, vielleicht :)
Sei's drum:
Wenn Du Deine angegebene Seite meinst - die funktioniert doch im Opera! (Opera 8.5x)
Ich sehe bei allen Begriffen beim Hover ein Symbol.
Viele Grüße,
Jörg
Vielen Dank für die schnelle Antwort! Ja es ist www.alexotica.de
Ich sehe bei allen Begriffen beim Hover ein Symbol.
was für ein Symbol?
Wenn man über "info" bei diplom_1.html geht muss die Bildinformation "Alice im Wunderland" usw. angezeigt werden. Habe beim Opera alle Javascript-optionen eingeschaltet, aber bei mir läufts nicht!
Der Javascript-code aus Dreamweaver ist echt lang und lautet:
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() { //v6.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
hi,
Der Javascript-code aus Dreamweaver ist echt lang
Ja, und umständlich, schlecht wartbar, schlecht zu verstehen - zusammengefasst, beschissen.
Du solltest dich mit Javascript zumindest soweit beschäftigen, dass du solche simplen Sachen selber erstellen kannst - und nicht auf den aufgeblähten Unsinnscode, den dir irgendein Programm automatisch generiert, angewiesen bist.
gruß,
wahsaga
Hell-O!
Wenn man über "info" bei diplom_1.html geht muss die Bildinformation "Alice im Wunderland" usw. angezeigt werden. Habe beim Opera alle Javascript-optionen eingeschaltet, aber bei mir läufts nicht!
Was jedoch nur Opera 9 betrifft, alle anderen Browser zeigen es so an, wie es soll. Das Javascript funktioniert schlicht und ergreifend nicht unter Opera 9, entweder du kannst damit leben oder du schreibst es neu.
Siechfred
Danke! Stimmt. Ich habe den Opera 9. Kann erst mal ein paar Tage damit leben. Und wenn dann mehr Zeit ist versuche ich javascript selber zu machen.
Gruss Jenni
Liebe(r) jenskie,
wie gefällt Dir denn mein Anfang mit einer selbstgebauten Funktion?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Lieber jenskie,
möchtest Du für Deine Zwecke nicht einen viel schlankeren Code selbst programmieren? Das Forum ist in solchen Fällen eine ideale Hilfe, wenn Du bei diesem Unterfangen irgendwo hängen bleiben solltest...
Ich mache schoneinmal den Anfang, ok?
// Der Einfachheit halber definiere ich gleich ein Objekt als "Sammelcontainer" der Funktionen
var LayerManager = new Object();
// Dieses Objekt erhält eine Funktion zum Anzeigen des gewünschten Layers
LayerManager.show = function (myLayerId) {
// Das Element über die ID ermitteln
var elm = document.getElementById(myLayerId);
if (!elm) {
// Nicht gefunden? -> Beenden!
return false;
} else {
// doch, gefunden!
elm.style.display = "block"; // vielleicht sollte hier nicht unbedingt "block" stehen...
};
// Und nun eine Funktion zum Verbergen eines Layers
LayerManager.hide = function (myLayerId) {
// das hier schaffste selber, oder?
};
Benutzung wäre dann so:
<a href="javascript:LayerManager.hide('test')">verbergen</a> | <a href="javascript:LayerManager.show('test')">anzeigen</a>
Liebe Grüße aus Ellwangen,
Felix Riesterer.