• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

onmouseover + innerHTML klappt nicht ...

Worrel

Spiele-Guru
Mitglied seit
22.03.2001
Beiträge
25.124
Reaktionspunkte
10.324
Hallo,

Ich möchte gerne mehrere Bildergalerien mit jeweils einem Vorschaubild verlinken.

Beim Mouseover über das Bild soll unten statt dem "T" der jeweilige Titel der Bildergalerie erscheinen:
http://celticcrypt.de/temp/doc/bilder.php

Das Scriptoriginal von SelfHTML funktioniert tadellos, ich finde aber nicht den Unterschied, warum das bei mir nicht klappt ... :|
 
Jetzt hab ich mir extra Web Developer installiert und prompt zeigt er mir eine Fehlermeldung an:
Fehler: document.all is undefined
Quelldatei: http://celticcrypt.de/temp/doc...
Zeile: 13

Kenn mich in dem Gebiet wirklich nicht gut aus, aber da der selbe Code bei SelfHtml funktioniert sollte es nicht am Browser liegen. Meine dieses durchgehen von Elementen hängt mit DOM zusammen, aber dass dies mit den Server-Einstellungen zusammen hängt, kommt mir auch komisch vor.

Edit:
So, das gleiche bei SelfHtml verwendet und dort kommt eine wirklich nützliche Fehlermeldung:

Warnung: Die nicht standardgemäße Eigenschaft document.all wurde verwendet. Verwenden Sie stattdessen den W3C-Standard document.getElementById().
Quelldatei: http://de.selfhtml.org/javascript/objekte/anzeige/all_inner_html.htm
Zeile: 8

Damit sollte es funktionieren. Ich kann mich nämlich noch ganz düster an das getElementById() erinnern, während document.all mir doch schon spanisch vor kam.
 
Schreib mal den entsprechenden Code.


EDIT:
So, hab das Problem, Firefox hat Probleme mit innerHTML und inner Text. weil Firefox Müll ist und das halbe Javascript nicht kann.

Im IE funktioniert dein Script, versuch es mal so.


function Aendern () {

if(navigator.appName == 'Netscape'){
document.all.Line.textContent = eins;
}else{
document.all.Line.innerHTML = eins;
}

}
EDIT2:

Oder so
function Aendern () {
document.getElementById("Line").innerText
}
 
Jetzt hab ich mir extra Web Developer installiert und prompt zeigt er mir eine Fehlermeldung an:
Fehler: document.all is undefined
...
Super, danke, dadurch hab ich die richtige Stelle gefunden:

Ich hatte zwar schon die Zeile "document.getElementById("myLine").innerHTML = eins;" eingebaut, bin aber in meiner Naivität davon ausgegangen, daß bei einem Untereinanderschreiben à la

function Aendern () {
document.all.myLine.innerHTML = eins;

document.getElementById("myLine").innerHTML = eins;
}

sich jeder Browser um seine verständlichen Zeilen kümmern und die anderen ignorieren würde ...
Nix da, erst wenn man die " document.all.myLine.innerHTML = eins;" Zeile für Mozilla explizit ausklammert, wird die andere Zeile richtig interpretiert ... :confused:

function Aendern () {
if (navigator.appCodeName == "Mozilla") {
document.getElementById("myLine").innerHTML = eins;
}
else {
document.all.myLine.innerHTML = eins;
}
}

Nochmals danke =)
 
function Aendern () {
if (navigator.appCodeName == "Mozilla") {
document.getElementById("myLine").innerHTML = eins;
}
else {
document.all.myLine.innerHTML = eins;
}
}

Nochmals danke =)
Nimm aber if (navigator.appCodeName == "Netscape") {
sonst funktioniert das nur bei Mozilla und alle anderen Browser die Netscape als Engine haben funktionieren wieder nicht.
 
Funktioniert getElementById nicht bei IE, Opera, Chrome? Laut der Warnung ist das der W3C-Standard und Browser, die sich nicht an offene Standards halten, gehören meiner Meinung nach ignoriert. (wenns ums Geld geht kann man Ausnahmen machen ;) )

Edit: Also laut der SelfHtml-Referenz kann getElementById jeder normale Browser, während es bei dem all-Attribut nicht ganz so gut aussieht. Da sollte man doch ausschließlich das getElementById verwenden, alles andere wäre imho Blödsinn.
 
Funktioniert getElementById nicht bei IE, Opera, Chrome? Laut der Warnung ist das der W3C-Standard und Browser, die sich nicht an offene Standards halten, gehören meiner Meinung nach ignoriert. (wenns ums Geld geht kann man Ausnahmen machen ;) )

Edit: Also laut der SelfHtml-Referenz kann getElementById jeder normale Browser, während es bei dem all-Attribut nicht ganz so gut aussieht. Da sollte man doch ausschließlich das getElementById verwenden, alles andere wäre imho Blödsinn.
Ja super, und hau mir n viertel Wochenende um die Ohren, weil ich denke, .all wäre weitverbreiteter und das müßte man irgendwie ans Laufen kriegen ... -.-

mit getEl...byId geht das auch ohne Browserweiche.
 
Ja super, und hau mir n viertel Wochenende um die Ohren, weil ich denke, .all wäre weitverbreiteter und das müßte man irgendwie ans Laufen kriegen ... -.-

mit getEl...byId geht das auch ohne Browserweiche.
Weil Mozilla(Netscape) aus Entwicklersicht totaler Müll ist, ganz schlimm wird es erst bei CSS. Ich entwickle erst alles für den IE, dann schau ich was beim FF nicht funktioniert und bau entweder Weichen ein oder versuch ein Bugfixing das für beide funktioniert. :B
 
Also ich persönlich entwickle nach genormten Standards, denn alle Browser versuchen diesen zu erfüllen. Falls es ein Browser nicht schafft, kann man für diesen Bugfixes machen. Und in der Hinsicht ist Microsoft ziemlich schlecht (sieht man ja an den Acid-Tests).
Microsoft hat da so viel Müll reingepummt, was leider Gottes verbreitet ist und teilweise ja auch aus Entwicklersicht praktisch ist, aber eben kein Standard ist. Dementsprechend läuft es nur beim IE und nirgendwo sonst. Die Schuld dann bei allen anderen zu suchen ist wirklich mehr als dämlich.
Vor allem wenn man Verhalten, welches man eigentlich mit PHP implementiert, versucht mit Javascript zu erledigen, geht das sehr schnell in die Hose. Die tollen Sachen, die der IE da vielleicht unterstützen mag, sind vollkommen zwecklos, wenn sie nirgendwo sonst laufen.
Webseiten müssen auf allen üblichen Browsern (also mindestens IE6, Firefox2, Opera, Safari, Chrome, Webkit) und allen gängingen Plattformen (Windows, Linux, Mac, iPhone, Android) laufen. Wenn man nicht alle ansprechen will, dann muss man eine Fehlermeldung ausgeben.

Wie heißt es so schön: Standards sind ne tolle Sachen, solange sich alle daran halten.
 
Microsoft hat da so viel Müll reingepummt, was leider Gottes verbreitet ist und teilweise ja auch aus Entwicklersicht praktisch ist, aber eben kein Standard ist. Dementsprechend läuft es nur beim IE und nirgendwo sonst. Die Schuld dann bei allen anderen zu suchen ist wirklich mehr als dämlich.
Naja, dazu müsste es erstmal eine sehr gute auskunft geben was den nun der Standard ist, dann geb ich wirklich die Schul dem Ding das nicht funktioniert. ;)
 
Ähm w3.org ?
Man muss sich ja nicht mal die Standards durchlesen, sondern einfach nur die Validatoren durchlaufen lassen (und bestehen). Also HTML/XHTML und CSS sind imho absolutes muss. Von so Punkten wie Web Accesibility (WAI) will ich gar nicht erst reden. Ist auf jeden Fall erstrebenswert und wird viel zu oft vernächlässigt. Also WAI Level A ist auch ohne große Einschnitte möglich.
 
Das ist aber auch ein heiloses Durcheinander was du da pflegst. Scripte und Stylesheets macht man für gewöhnlich in eigene Dateien und bindet diese bei Bedarf dann ein.
Zudem sind die Skripte in wahlloser Reihenfolge. Ganz am Anfang vor den nicht vorhandenen Doctype und sogar noch vor dem <html> Tag geht mal gar nicht.
Auch wenn ich mittlerweile .NET gut finde, so gilt das eigentlich nur für C#. Hab mich noch nie mit ASP beschäftigt und vertraue da lieber auf PHP.

Ich denke wenn du das mal aufräumen würdest, hättest du schnell sehr viel weniger Fehler und hättest auch viel mehr Spaß bei der Wartung. Die meisten Fehler und Warnungen kommen glaube nur von solchen organisatorischen Fehlern, weniger von falschen Benutzung von HTML/CSS.
 
Das ist aber auch ein heiloses Durcheinander was du da pflegst. Scripte und Stylesheets macht man für gewöhnlich in eigene Dateien und bindet diese bei Bedarf dann ein.
Zudem sind die Skripte in wahlloser Reihenfolge. Ganz am Anfang vor den nicht vorhandenen Doctype und sogar noch vor dem <html> Tag geht mal gar nicht.
Auch wenn ich mittlerweile .NET gut finde, so gilt das eigentlich nur für C#. Hab mich noch nie mit ASP beschäftigt und vertraue da lieber auf PHP.

Ich denke wenn du das mal aufräumen würdest, hättest du schnell sehr viel weniger Fehler und hättest auch viel mehr Spaß bei der Wartung. Die meisten Fehler und Warnungen kommen glaube nur von solchen organisatorischen Fehlern, weniger von falschen Benutzung von HTML/CSS.
Nein, das hat schon alles sein Richtigkeit. Da über Query Strings Custom Stylesheets möglich sind, stehen in den CSS Dateien nur Farben und Schriftarten, etc... Der rest( z.b. Position, z-Index) ist direkt in dem entsprechendem Tag oder das Hintergrundbild hat ein Globales Style Tag. Das Javascript ist für die Clientseite zuständig und im Hintergrund hängen noch ca. 2000 Zeilen VB Code und die Datenbank.
Aber der Validator meckert mit ja eh nur die shortTags an. :-D Und noch ein paar kleinigkeiten wie Leerzeichen.

EDIT:

Aber hast schon recht, ist eine ewige Baustelle. :-D
 
Zurück