Textnodes im IE
Constantin
- javascript
0 Antipitch0 JürgenB0 Struppi
Hallo,
kürzlich habe ich schonmal eine Frage hierzu gestellt, habe aber leider Lösung bekommen... das lag aber vielleicht auch daran, dass ich das Problem nicht ausreichend beschrieben habe. Diesmal mache ich es besser :)
Mein Problem ist, dass ich versuche in meinem JavaScript allen Textnodes des DOM-Trees eine neue Eigenschaft zuzuweisen z.B.:
node.nodePath = str;
diese Anweisung klappt bei mir im Firefox problemlos, im IE 7 führt diese Anweisung zu der JavaScript-Fehlermeldung:
Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
Liegt das daran, dass die Textnodes (nodeType==3) im IE vielleicht davor geschützt sind, dass man ihnen solch eine Eigenschaft zuweist?
Hier ist ein kleines Test-Script, falls jemand den Fehler reproduzieren möchte:
getAllTextNodes = function(node) {
if (node.nodeType == 3) {
var str = 'ein test';
node.nodePath = str;
for (var i=0; i< node.childNodes.length; ++i) {
getAllTextNodes(node.childNodes[i]);
}
};
getAllTextNodes(document.body);
Ich wäre sehr froh, wenn mir jemand weiterhelfen könnte!
Constantin
Hallo Antipitch!
Diese Eigenschaft möchte ich ja (wie gesagt) hinzufügen!
normalerweise geht das in JavaScript:
var p = new Object;
p.test = 'hallo';
alert(p.test);
Und im firefox erhalte ich (wie ebenfalls gesagt) die volle Funktionalität.
Leider fehlt in meinem Testscript ein }. Das lauffähige Script lautet also:
getAllTextNodes = function(node) {
if (node.nodeType == 3) {
var str = 'ein test';
node.nodePath = str;
}
for (var i=0; i< node.childNodes.length; ++i) {
getAllTextNodes(node.childNodes[i]);
}
};
getAllTextNodes(document.body);
Hi Constantin,
da war ich wohl noch nich ganz wach, ähem...
Auch nochmal rumprobiert, Struppi hat wohl Recht. Falls du noch irgendwelche genaueren Infos dazu findest, wär's super, wenn du sie postest.
Gruß
Antipich
Hallo Constantin,
getAllTextNodes = function(node) {
if (node.nodeType == 3) {
var str = 'ein test';
node.nodePath = str;for (var i=0; i< node.childNodes.length; ++i) {
getAllTextNodes(node.childNodes[i]);
}
};
getAllTextNodes(document.body);
ich glaube, da fehlt eine "}".
Gruß, Jürgen
Hi Jürgen,
ob ' oder " ist egal. Aber es fehlt ein }...
Das lauffähige Script sieht eigentlich so aus:
getAllTextNodes = function(node) {
if (node.nodeType == 3) {
var str = 'ein test';
node.nodePath = str;
}
for (var i=0; i< node.childNodes.length; ++i) {
getAllTextNodes(node.childNodes[i]);
}
};
getAllTextNodes(document.body);
kürzlich habe ich schonmal eine Frage hierzu gestellt, habe aber leider Lösung bekommen... das lag aber vielleicht auch daran, dass ich das Problem nicht ausreichend beschrieben habe. Diesmal mache ich es besser :)
Offensichtlich kann man einem Textknoten keine Eigenschaft im IE zufügen. Warum das so ist weiß ich nicht
Struppi.