Hi,
Wenn Du das so ausdrückst, hört es sich so an, als würde ich nur einen Browser bedienen. Dem ist nicht so, ich denke der Prozentsatz ist zweistelligen ;-)
Ich drücke es so aus, weil es *einzig* in der Verantwortung des *Programmierers liegt, fehlertolerante Software zu schreiben. Keineswegs aber liegt *irgendwas* in der Verantwortung eines Anwenders, der eine Software (auf die er oft keinerlei Einfluß hat, in dem dafür vorgesehenen Medium nutzt, welches zudem *explizit* für Informationsaustausch über Hard- und Softwareschranken hinweg geschaffen wurde! :-)
Mein Script wäre wohl aussagelos im Archiv verschwunden, wenn ich gestern hier meine Finger still gehalten hätte
Nein - daß das Script unsauber programmiert ist, wäre hier auch sonst zur Sprache gekommen! Dieses Forum steht, wie SELFHTML selbst, in der oben erwähnten Tradition, Surfern fehlerfreien Informationsaustausch zu ermöglichen, indem man die Coder entsprechend sensibilisiert.
Das einzig besondere an diesem Fall ist, daß sich hier der Autor gemeldet hat, und die (berechtigte) Kritik somit prompt einen direkten Adressaten hatte und, aufgrund des Widerspruchs, halt ein wenig "ausuferte". ;-)
Das Script provioziert keine Fehler, Bäume verleiten am Starßenrand auch nicht dazu zum gegenfahren.
Vergleiche es lieber mit einer niedrigen Brücke, unter der nicht jedes Fahrzeug durchpaßt. Im Verkehr wäre hier vor der Brücke ein Verbotsschild "Nicht für Fahrzeuge über x Meter". Ich sage *nicht*, daß man keine niedrigen Brücken bauen darf (mache ich selbst und ziemlich auschweifend ;-)), aber wenn man das macht, dann sollte man schon verhindern, daß Autofahrer, die mit so etwas überhaupt nicht rechnen müssen, nicht stupide dagegenknallen! %-)
Wo zum Henker siehst Du ein Problem, verdammt nochmal schlicht ein Schild aufzustellen?
Um auf den Topic zurückzukommen: "getElement(s)By verwerflich?"
Antwort: *Nein!*
Gegenfrage: Wo ist das Problem, getElement-Calls (bzw. generell den Aufruf von Methoden/Eigenschaften, deren Existenz nicht sicher ist) erst zu machen, wenn deren Existenz gesichert ist? *Einmalig* am Anfang - dann nie wieder.
Und um User nicht zu verwirren, sollte man die Funktionalität auch nicht anbieten, wenn sie gar nicht möglich ist (z.B. ein Button "Klick hier" ist bestenfalls sinnfrei, wenn der User dann klickt, und nichts bekommt, außer einer Fehlermeldung, die ihm nichts sagt, auf keinen Fall aber das macht, was die Seite ihm versprochen hat)
Und wenn man die Deluxe-Version machen möchte, dann kann man dem User alternativ noch sagen: Lieber User, wenn den Browser neuer wäre, dann könntest Du hier eine tolle Funktion nutzen, die XYZ macht - leider geht das mit diesem Browser nicht, Danke für dein Verständnis.
Es ist eher eine Grundsatzdiskussion (zwischen Dir und mir), wie lange man Rücksicht auf etwas nehmen muss (oder gar "verpflichtet ist" dies zu tun, wo),
Im Web ist man zu gar nichts "verpflichtet". Wir sind *hier* aber nicht "irgendwo" im Web, sondern bei SELFHTML! Und hier gilt: Vermeidbare Fehler benennen, damit sie korrigiert werden können.
um so mehr Du mit mir darüber redest, um so mehr stell ich mir die rhetorische Frage, "Wie der Mensch jemals den aufrechten Gang erlernen konnte, wenn er sich selbst am Boden mit Steinen fesselt(e)"...
Oh je, ich nutze DHTML ggf. bis zum Anschlag! S. z.B. Coding: Durchsichtige Elemente oder Coding: CSS-Regeln auslesen & ändern: beide Funktionen laufen selbst *nicht* auf allen "modernen" Browsern - Opera ist jeweils etwas rückständig. Trotzdem provozieren meine Scripts keine Fehler auf alten Browsern und verhindern dadurch, daß die restlichen, ggf. funktionierenden Scripts mit in den Abgrund gerissen werden - auch nicht auf Operas. Trotzdem kann man sie sinnvoll einbinden. Den betreffenden Surfern fehlt dann halt eine Funktionalität oder ein Effekt - darauf kann man ihn ggf. sogar hinweisen (vergleiche die cssRule-Testseiten auf Mozilla und auf Opera!). Du siehst einen Widerspruch, wo keiner existiert!
Aber egal - fällt ja auf den Autor zurück ...
...dem letzten Fuck, ich kenne Deine schlagfertigen Argumente bereits.
Humor ist, wenn man trotzdem lacht! =:-))
Dann darf man auch nicht erwarten, das mit veralteter Technik *alles* so geht, als wäre es frisch aus der Presse.
S.o. - das muß auch keiner!
Und einer, der noch einen IE4 nutzt, meine nichtssagenden Serverlogs bescheinigen mir 0 (in Wort Null) Besucher mit diesem Browser (das wird sich wahrscheinlich gleich schlagartig ändern *fg*), kann mir nicht erzählen, das er keine Möglichkeit hat(te), es zu ändern und unbewusst damit unterwegs ist.
Ich habe im Laufe menes Webdesigner-Lebens eine Menge Leute getroffen, denen es so ging. Ich kann dir versichern, ich weiß wovon ich rede!
Und was deine Serverlogs angeht: Die sind irrelevant. Andere haben andere Serverlogs. Und was *Du* auf *deinem* Server machst, ist einzig *deine* Angelegenheit. Wenn Du aber Code in der Öffentlichkeit verteilst, bist Du *Multiplikator*! Du hast keinen Einfluß mehr darauf, auf wessen Server mit welchen Surfern auch immer dieser Code landet! Daraus ergibt sich: Du hast eine höhere Verantwortung. Der solltest Du gerecht werden (und sei es durch eine Warnung an weniger erfahrene Programmierer, daß sie sich nicht blindings ein Problem aufhalsen, welches vielleicht seinem Chef sauer aufstößt, weil er beim Surfen auf der Firmensite mit seinem PDA & IE 4 plötzlich statt der stolz angekündigten neuen Funktion nur einen Fehler bekommt.
Denn erfahrenere Programmierer die sich dieses Problems ohnehin bewußt sind, werden dein Script sicher nicht nutzen - sie würden, da es schneller selbst programmiert ist, noch nicht mal danach suchen.
Durchaus, aber ich tippe 1000000/1, das dieser Thread nicht zitiert und vorgekramt wird.
Also ich finde in meinen Logs so *einige* Besucher, die von Archivthreads auf meine Site gekommen sind ... 8-)
Des Weiteren nutze ich keine _so_ neue Technik sondern eine, die *ich* zum normalen Standard zähle.
Da stimme ich dir volkommen zu!
Besser als ein nicht standardkonformes innerHTML, mit all seinen Nachteilen,
Unfug! Als innerHTML Verbreitung fand, habe ich sofort in mein Framework eine Abfrage eingebaut, ob der jeweilige Browser dies auch unterstützt, um alternativ mit standardisierten DOM-Aufrufen arbeiten zu können.
Mittlerweile (gibt's ja schon 'ne Weile ;)) hat sich herausgestellt, daß es a) *keinen* Browser gibt, der W3C-DOM unterstützt, innerHTML jedoch nicht (in der Tat unterstützen mehr Browser innerHTML als das W3C-DOM), b) diese MS-Idee als so gut befunden wurde, daß sie alle unterstützen - und alle auch benutzen. Das macht innerHTML zu einem De-Facto-Standard, um den auch zukünftige Browserentwickler nicht herum kommen (vergleichbar mit der MS-Idee XMLHttpRequest(), ohne die Ajax & "Web 2.0" auch nicht denkbar wäre - ebenfalls am W3C vorbei, ja, in Konkurrenz zu den Standards des W3C).
Ich will aber gerne einräumen, daß es nicht schaden kann, explizit zu prüfen, ob innerHTML geht oder nicht. Aus historischen Gründen (Überprüfung ist halt vorhanden) mach ich es, auch wenn es keinen Fall gibt, wo dies notwendig wäre ...
Und: Eine entsprechende Diskussion über die Verwendung von innerHTML hat es hier bereits gegeben. Auch wenn sie dir entgangen ist, man kann sie bestimmt noch im Archiv finden ... :)
Faktisch schließt die indirekte Überprüfung der innerHTML-Funktionalität via getElement... ja sogar Browser aus, die es trotzdem nutzen könnten (IE 4 >:->), wenn man sich nur die Mühe machen würde, einen Extra-Zweig für sie zu coden. Aber diese Mühe (OK, hier wäre es ein "Müchen" ;)) mache ich mir i.d.R. nicht mehr. Ich unterstütze i.d.R. die alten Browser nicht mehr - ich baue (mittlerweile) keine "Hebebrücken" für "Altnutzer" (mehr), lasse die "Altnutzer" aber eben auch nicht "an die Brücke knallen" - egal ob der "Altnutzer" den IE 4 oder den Opera 9 benutzt. ;)
scheint mein Vorschlag wohl zu sein, sonst hätten sich ganz andere Leute wohl mit eingemischt...
? Dein Code ist doch für die Anforderung gar nicht geeignet?! Deine Funktion kann Bilder und deren Attribute austauschen. Das war die Minimalforderung. Dafür ist, auch wenn Du es verwendest, getElement... doch gar nicht notwendig. Gefragt war optimalerweise ein zusätzliches Austauschen auch von beliebigem Text. *Dafür* sind modernere DOM-Methoden zwingend erforderlich - aber davon steht ja nichts in dem Script ...
... und darauf wies ich von Anfang an hin ...
Gruß, Cybaer
--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!