MouseOver funktioniert bei Opera nicht?
Enrico
- javascript
Hallo,
kann mir jemand sagen, warum das folgende Script bei Opera nicht richtig funktioniert:
// Tooltips von Oliver Kertesz NOV-2000
// Nicht für MSIE4 und NS4 oder älter!!
// Im BODY Bereich als "JavaScript1.3" einbinden!
// Ebene schreiben
if (document.getElementById)
document.writeln("<div id="tt_tip" style="position: absolute; background: antiquewhite; border: 2px solid brown; color: brown; padding: 3px; font: 10pt Arial; visibility: hidden; width: 160px; margin-top:-30px; margin-left: 10px; z-index:100;"> </div>");
// Ebenentext einsetzen und Ebene sichtbar machen
function tooltip(text){
if (document.getElementById){ // geht das überhaupt?
document.getElementById("tt_tip").innerHTML=text;
document.getElementById("tt_tip").style.visibility="visible";
}
}
// Ebene unsichtbar machen
function hidetip(){
if (document.getElementById){
document.getElementById("tt_tip").style.visibility="hidden";
document.getElementById("tt_tip").style.top="-200";
document.getElementById("tt_tip").style.left="-200";
}
}
// Ebene dauernd auf aktuelle Mausposition bringen
function toolt(Ereignis){
if (document.getElementById("tt_tip").style.visibility == "visible"){
if (document.all){ // MSIE5
document.getElementById("tt_tip").style.left = (window.event.clientX + document.body.scrollLeft);
document.getElementById("tt_tip").style.top = (window.event.clientY + document.body.scrollTop);
}
else { // Netscape6
document.getElementById("tt_tip").style.left = (Ereignis.clientX + window.pageXOffset);
document.getElementById("tt_tip").style.top = (Ereignis.clientY + window.pageYOffset);
}
}
}
// Aktualisierungsroutinen bei Ereignissen aufrufen
document.onmouseout = hidetip;
document.onkeypress = hidetip;
document.onmousemove = toolt;
Die Funktion zum Aufruf der Tooltipps ist:
<a href="#" onMouseOver="tooltip('Das ist der Tooltip'>Test</a>
Beim Opera wird zwar der Rahmen angezeigt, jedoch nicht der Text?
Wäre echt nett, wenn da jemand weiter weiß.
Grüße und danke
Enrico
Hi
Die Funktion zum Aufruf der Tooltipps ist:
<a href="#" onMouseOver="tooltip('Das ist der Tooltip'>Test</a>
^^
)"
einfügen.
Dann könnte es besser werden...
Andreas
Hallo,
tut mir leid, dass habe ich wohl beim posten der Nachricht übersehen, normalerweise ist die Klammer und das Ausführungszeichen mit enthalten, aber es geht dennoch nicht?
Grüße und danke
Enrico
Hallo,
kann mir jemand sagen, warum das folgende Script bei Opera nicht richtig funktioniert:
// Tooltips von Oliver Kertesz NOV-2000
// Nicht für MSIE4 und NS4 oder älter!!
// Im BODY Bereich als "JavaScript1.3" einbinden!
// Ebene schreiben
if (document.getElementById)
document.writeln("<div id="tt_tip" style="position: absolute; background: antiquewhite; border: 2px solid brown; color: brown; padding: 3px; font: 10pt Arial; visibility: hidden; width: 160px; margin-top:-30px; margin-left: 10px; z-index:100;"> </div>");
Probier mal von Anfang an in das div was reinzuschreiben, damit innerHTML nicht "" zurückgibt. Ist nur eine Idee, habe ich nicht getestet.
// Ebenentext einsetzen und Ebene sichtbar machen
function tooltip(text){
if (document.getElementById){ // geht das überhaupt?
document.getElementById("tt_tip").innerHTML=text;
Zum Testen kannst Du hier reinschreiben:
alert(document.getElementById("tt_tip").innerHTML);
document.getElementById("tt_tip").style.visibility="visible";
}
}
// Ebene unsichtbar machen
function hidetip(){
if (document.getElementById){
document.getElementById("tt_tip").style.visibility="hidden";
document.getElementById("tt_tip").style.top="-200";
document.getElementById("tt_tip").style.left="-200";
}
}
// Ebene dauernd auf aktuelle Mausposition bringen
function toolt(Ereignis){
if (document.getElementById("tt_tip").style.visibility == "visible"){
if (document.all){ // MSIE5
document.getElementById("tt_tip").style.left = (window.event.clientX + document.body.scrollLeft);
document.getElementById("tt_tip").style.top = (window.event.clientY + document.body.scrollTop);
}
else { // Netscape6
document.getElementById("tt_tip").style.left = (Ereignis.clientX + window.pageXOffset);
document.getElementById("tt_tip").style.top = (Ereignis.clientY + window.pageYOffset);
}
}
}
// Aktualisierungsroutinen bei Ereignissen aufrufen
document.onmouseout = hidetip;
document.onkeypress = hidetip;
document.onmousemove = toolt;
Die Funktion zum Aufruf der Tooltipps ist:
<a href="#" onMouseOver="tooltip('Das ist der Tooltip'>Test</a>
Beim Opera wird zwar der Rahmen angezeigt, jedoch nicht der Text?
Wäre echt nett, wenn da jemand weiter weiß.
Grüße und danke
Enrico
Gruß
Axel
Hallo,
danke erst mal für eure Hilfe, aber so richtig bin ich jetzt damit nicht klar gekommen, ich habe mal die Funktion mit "alert..." eingefügt, das funktioniert in Opera, aber in den Tooltipps zeigt es den Text wiederrum nicht an. Auch die Farben habe ich richtig angepasst, also in Hexadezimal geschrieben, das brachte jedoch auch keinen Erfolg?
Grüße und danke
Enrico
Hallo,
danke erst mal für eure Hilfe, aber so richtig bin ich jetzt damit nicht klar gekommen, ich habe mal die Funktion mit "alert..." eingefügt, das funktioniert in Opera, aber in den Tooltipps zeigt es den Text wiederrum nicht an. Auch die Farben habe ich richtig angepasst, also in Hexadezimal geschrieben, das brachte jedoch auch keinen Erfolg?
Auch alle Einheiten an width und height gesetzt?
style="width:100px; height:100px"
und in JavaScript:
...style.width=variable+"px";
Grüße und danke
Enrico
Hallo,
Im alert steht der Text und der Browser zeigt einen leeren Rahmen mit der Hintergrundfarbe?
Dann kann es eigentlich nur noch an der Textfarbe (color) oder an der font-family liegen. Mal andere ausprobieren!
Gruß
Axel
Hallo,
document.writeln("<div id="tt_tip" style="position: absolute; background: antiquewhite; border: 2px solid brown; color: brown; padding: 3px; font: 10pt Arial; visibility: hidden; width: 160px; margin-top:-30px; margin-left: 10px; z-index:100;"> </div>");
weder brown noch antiquewhite sind zulässige Farbwerte in CSS.
document.getElementById("tt_tip").style.top="-200";
document.getElementById("tt_tip").style.left="-200";
200 Ellen? 200 Fuß? 200 Kilometer?
Längenangaben mit Wert ungleich 0 müssen in CSS immer eine Einheit haben.
if (document.all){ // MSIE5
document.all ist auch in älteren Versionen vorhanden
document.getElementById("tt_tip").style.left = (window.event.clientX + document.body.scrollLeft);
nur weil document.all existiert, muß noch lange nicht document.getElementById existieren (IE 4...)
document.getElementById("tt_tip").style.top = (window.event.clientY + document.body.scrollTop);
Einheit...
}
else { // Netscape6
Nicht alles, was nicht IE ist, ist Netscape 6
document.getElementById("tt_tip").style.left = (Ereignis.clientX + window.pageXOffset);
Einheit...
document.getElementById("tt_tip").style.top = (Ereignis.clientY + window.pageYOffset);
Einheit...
Andreas
Sers
So weit ich weiß kann Opera kein "innerHTML".
mfg
Sebastian