WinFuture-Forum.de: JavaScript unter Firefox 4.0 - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

JavaScript unter Firefox 4.0 - HTML IDs _müssen_ mit "getElementById" angesprochen werden


#1 Mitglied ist offline   eN-t 

  • Gruppe: aktive Mitglieder
  • Beiträge: 123
  • Beigetreten: 22. November 10
  • Reputation: 2
  • Geschlecht:unbekannt

geschrieben 22. März 2011 - 11:09

Hallo Community,

ich frage wieder mal direkt bzw. schildere die "Sachlage":

Ich habe heute aus Zufall bemerkt, dass der Firefox 4.0 mit Javascript folgende "Eigenheit" aufweist:
HTML-Tags mit IDs, z.B. DIVs, können explizit NUR mit "getElementById" angesprochen werden. Das Weglassen dieses Ausdrucks ist nicht möglich. Ich bin mir ziemlich sicher, dass es das bisher war (unter 3.x).

Mit dem IE (Version 8) und dem Chrome funktioniert es auch, wenn ich nur
ID.blabla.value
oder so schreibe. Beim Firefox muss nun explizit
document.getElementByID('ID').blabla.value
schreiben.

Ebenso hilft es nichts, den Elementen statt IDs einen Namen zu geben oder beides identisch.
Ganz unabhängig davon, welche Schreibweise nun richtig oder falsch, schön oder unschön, schlampig oder sauber ist, finde ich das ein wenig komisch. Es ist wahrlich kein großes Problem, denn in der Regel habe ich ohnehin so gearbeitet. Aber bei kleinen Projekten, die ich gerade noch am Anfang ein wenig teste und wo der Code keineswegs final ist, lasse ich das aus Geschwindigkeits- und Bequemlichkeitsgründen schonmal weg. Und dabei ist mir das halt aufgefallen.

Ist das bekannt? Gehört sich das so? Ist es beim IE und Chrome reine "Kulanz" (um es nett zu sagen)?

Danke im Voraus!
Ich gebe mir Mühe, meine Texte freundlich und leserlich zu gestalten - also tut Ihr dies doch bitte auch! Danke.
0

Anzeige



#2 Mitglied ist offline   evil.baschdi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.639
  • Beigetreten: 11. Februar 07
  • Reputation: 56
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1, breites #Neuland
  • Interessen:IT, Musik

geschrieben 22. März 2011 - 11:20

Evtl ist das eine Eigenart der neuen JavaScript Enginge. Evtl so nach dem Motto "unnötiges weglassen, dadurch schneller zum Ziel" oder so :unsure:
Wär aber dann irgendwie so ne Logik die in die Richtung ginge, man würde aus einer 200 km Autobahnstrecke nen Teilbereich von 10 km auf eine Fahrbahn verängen und hätte deshalb nur noch 190 km bis zum Ziel. ;D (ach, Gummibärchen sind schon toll).
Eingefügtes Bild

"
Heute code ich, morgen debug ich und übermorgen caste ich die Königin auf int!"
P.S. Ich leiste keinen Support per PN. Wer ein Problem hat, ab damit ins Forum!
Windows 10 - Windows Anleitungen
0

#3 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 23. März 2011 - 10:48

document.getElementById ist der standardisierte Vorgang um ein Element an Hand seiner ID (nicht Name oder Klasse, dafür gibt es wiederum andere Funktionen) zu bekommen. Alles andere ist browserspezifisch und kein Standard!
0

#4 Mitglied ist offline   evil.baschdi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.639
  • Beigetreten: 11. Februar 07
  • Reputation: 56
  • Geschlecht:Männlich
  • Wohnort:127.0.0.1, breites #Neuland
  • Interessen:IT, Musik

geschrieben 23. März 2011 - 11:02

Aber trotzdem eigenartig, dass man sich nach was weiß ich wie langer Zeit als Browser von seiner eigenen Eigenart löst. War ja kein Nachteil sondern eher ein Vorteil. Klar, wenn man Multibrowserfunktional (gibbet dat Wort?) denkt, ist das jetzt natürlich besser gelöst, da man garnicht mehr in die Versuchung kommen kann eine Inkompatibilität gegenüber Chrome oder dem IE hervorzurufen, da man jetzt eben den Standard einhalten MUSS.
Eingefügtes Bild

"
Heute code ich, morgen debug ich und übermorgen caste ich die Königin auf int!"
P.S. Ich leiste keinen Support per PN. Wer ein Problem hat, ab damit ins Forum!
Windows 10 - Windows Anleitungen
0

#5 Mitglied ist offline   def 

  • Gruppe: aktive Mitglieder
  • Beiträge: 429
  • Beigetreten: 19. Dezember 06
  • Reputation: 7
  • Geschlecht:Männlich

geschrieben 23. März 2011 - 11:48

Beitrag anzeigenZitat (mister-x: 23.03.2011, 11:02)

Aber trotzdem eigenartig, dass man sich nach was weiß ich wie langer Zeit als Browser von seiner eigenen Eigenart löst.

Stimmt, passt aber zu Mozillas Geschichte.

Beim Wechsel von Netscape 4 auf Netscape 6 (entsprach Mozilla 0.6) haben sie sich von ihrem eigenen Layer-Ansatz für dynamisches HTML getrennt, den sie gerade zuvor mit Netscape 4 eingeführt hatten. Im Hinblick auf Standards war es langfristig sicher das Beste, aber damals haben sie es sich und den Webentwicklern und den Anwendern mit solchen Aktionen schwer gemacht.
Eingefügtes Bild
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 23. März 2011 - 13:25

Ich erweitere meine Aussage von eben dahingehend, dass beides im Firefox 4 funktioniert:

<div id="foo"><span>Foo</span></div>
<script>alert(document.getElementById('foo').innerHTML);</script>

<span>Foo</span>


<div id="foo"><span>Foo</span></div>
<script>alert(foo.innerHTML);</script>

<span>Foo</span>


Trotzdem bleibt die Kernaussage, dass das kein Standard ist!
0

#7 Mitglied ist offline   Texer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 23
  • Beigetreten: 15. September 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Saalfeld
  • Interessen:PHP, Motocross (Freestyle)

geschrieben 17. Juni 2011 - 06:42

Ich hatte auch mitbekommen, dass die "einfachen/schnellen" Schreibweisen ala "name.value" noch funktionieren wenn die Elemente sich in einem Formular befinden.

Also ist das auch eine Kulanzsache, denn sehr sehr viele Formulare würden dann einfach nicht mehr mit dem FF funktionieren, das wär bei dem Marktanteil ne sehr schlechte Sache.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0