![]() | |
![]() |
| | Thread Tools | Display Modes |
#21
| |||
| |||
|
|
function showPosition(evt){ [...] if(document.getElementById) { document.getElementById("a10").innerHTML = [...]; } return true; } [...] function init(){ window.objContainer = getLayerRef("a10"); [...] window.objContainer.onmousemove = showPosition; [...] } Aber ich lasse mich gern von einem besseren Konzept überzeugen. |
#22
| |||
| |||
|
|
if(typeof window.objContainer.innerHTML != undefined) { |
#23
| |||
| |||
|
|
Ralf Beutler <dieIstNichtVonMir (AT) brain4 (DOT) de> typed: Aber ich lasse mich gern von einem besseren Konzept überzeugen. Vorschlag: function showPosition(evt){ [...] if(typeof window.objContainer.innerHTML != undefined) { window.objContainer.innerHTML = [...]; } return true; } function init(){ window.objContainer = getLayerRef("a10"); [...] window.objContainer.onmousemove = showPosition; [...] } |
#24
| ||||||
| ||||||
|
|
Thomas 'PointedEars' Lahn schrieb unter anderem: Ralf Beutler wrote: Dietmar Meier schrieb unter anderem: Ralf Beutler <dieIstNichtVonMir (AT) brain4 (DOT) de> typed: | if(document.getElementById) { | document.getElementById([...]).innerHTML = [...]; ist aber ein wenig böse. Wieso? Weil die Existenz von document.getElementById nicht bedeutet, dass jeder Rückgabewert von document.getElementById([...]) eine Eigenschaft "innerHTML" besitzt. Wenn diese Eigenschaft in JavaScript nicht existiert, wird sie doch automatisch angelegt, oder? Weshalb denn _JavaScript_? vielleicht sollte ich auf http://www.brain4.de/programmierecke/js/#start noch in den ersten Satz noch "im Browser" mit aufnehmen. |
|
`innerHTML' ist eine proprietäre Eigenschaft einiger verbreiteter DOMs. ^^^^^^^^^^^ getElementById() ist eine standardisierte Methode des W3C-DOM Level 2+. Sie liefert entweder eine Referenz auf ein Host-Objekt, welches ggf. das Element-Interface des W3C-DOM implementiert (ID vorhanden), das ist dann das normale Verhalten. Also tuts. |
|
`null' (ID nicht vorhanden) da die Funktion nur aufgerufen wird, wenn es ein Element mit dieser ID gibt, fällt das Argument wohl flach. |
|
oder etwas Undefiniertes (ID mehrfach vorhanden) Das stelle ich auf meiner Seite sicher, denn ich weiß was ich tue. Fällt also auch flach. |
|
Für Host-Objekte, auf die so wie hier mittels einer ECMAScript-Implementation zugegriffen wird, gilt aber nicht zwangsläufig das, was auch für native ECMAScript-Objekte gilt, siehe ECMAScript 3, 8.6.2. Was willst du (bzw. ECMA) mir damit sagen? |
|
The following table summarises the internal properties used by this specification. The description indicates their behaviour for native ECMAScript objects. Host objects may implement these internal methods ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ with any implementation-dependent behaviour, or it may be that a host ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ object implements only some internal methods and not others. [...] [[Put]] (PropertyName, Value) Sets the specified property to Value. [...] Every object (including host objects) must implement the [[Prototype]] and ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ [[Class]] properties and the [[Get]], [[Put]], [[CanPut]], ^^^ ^^^^^^^^^^^^^^^^^^^ [[HasProperty]], [[Delete]], and [[DefaultValue]] methods. [...] |

#25
| ||||
| ||||
|
|
Gute Scripts sind portierbar. |
|
So wäre es sinnvoller, die ID nicht hardzucoden sondern per Argument zu übergeben. |
|
Und es gilt auch als schlechter Stil, auf nicht-native Objekte, die über Methoden referenziert werden, ohne Test zuzugreifen. |
|
Davon abgesehen gibt es wahrscheinlich auch Implementationen, die nicht ECMAScript-konform sind. |
#26
| ||||||||||
| ||||||||||
|
|
Thomas 'PointedEars' Lahn war der Meinung: Gute Scripts sind portierbar. Oh man. Ich werde am besten auf der Seite in großen roten Buchstaben vor diese Funktion schreiben: Bitte im richtigen Leben niemals so machen! |
|
Ich brauche das nicht portierbar! Ich brauche es nur und ausschließlich für diesen einen Fall. |
|
Da fange ich wegen dem bisschen Skript nicht noch an, das komplette DOM zu kapseln. |
|
Wenn ich etwas in ein HTML-Element schreiben will, dann nehme ich die DOM Methoden. |
|
Ich habe keine Lust mehr, auf Browser, die ausschließlich document.all kennen*Rücksicht*zu nehmen. |
|
So wäre es sinnvoller, die ID nicht hardzucoden sondern per Argument zu übergeben. Oh. Das ist eigentlich das, was ich gern hätte. Aber leider ist das bei den eventhandlern immer etwas schwierig. |
|
Und es gilt auch als schlechter Stil, auf nicht-native Objekte, die über Methoden referenziert werden, ohne Test zuzugreifen. Da gebe ich dir Recht. In einer normalen Programmersprache ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
würde ich da ein try .. catch drum herum machen. |
|
Da ich aber noch auf NN4.x Rücksicht nehmen wollte, habe ich es gelassen. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|
Davon abgesehen gibt es wahrscheinlich auch Implementationen, die nicht ECMAScript-konform sind. yupp. Aber die sind mir sowas von egal. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
#27
| |||
| |||
|
|
Ich brauche das nicht portierbar! Ich brauche es nur und ausschließlich für diesen einen Fall. Es soll eine Demo sein, die man in eigenen Scripten nachvollziehen können soll. |
![]() |
| Thread Tools | |
| Display Modes | |
| |