Cybaer: Text zur Laufzeit ändern

Beitrag lesen

Hi,

hier noch mal der Link zu dem alten Thread über das MAC-IE/innerHTML-Prolem: http://forum.de.selfhtml.org/archiv/2004/11/t95498/#m581172.

Wir hatten uns schonmal diesbezügl. auseinandergesetzt, allerdings war das IIRC ausgerechnet zu der Zeit, als das Forum ein paar Threads nicht archivierte. =:-/

Die Verbindung von innerHTML, Tabellenfeldern und Ändern der Feldinhalte scheint zum Absturz zu führen.

IE hat auch beim 6er ggf. Probleme bei dynamischen Tabellen. :-(

Aber möglicherweise kann man sich noch nicht mal auf die konsequente Umsetzung der Fehler verlassen. (*g*)

:)

Oder vieleicht ist das Problem auch OS-Versionsabhängig?

Na ja, soviele Mac-User die noch IE fahren, gibt es ja nicht. Wer Geld hat, surft tigermäßig mit Safari, wer Grips hat mit iCab ... ;->

PS: Wie sieht dein Testscript aus?

Aus Coding: Ticker4All:

  
// Auslesen (und ggf. kürzen)  
  if(is_w3cxTicker) {  
   htmlText=tickerElement.innerHTML; tickerElement.innerHTML="";  
   htmlText=replaceHtmlTags(htmlText,"!--","|",true);  
   htmlText=replaceHtmlTags(htmlText,"BR","|",true);  
   htmlText=replaceHtmlTags(htmlText,"HR","|",true);  
  }  
  else if(is_w3cTicker) {  
   if(tickerElement.hasChildNodes()) { var Node=tickerElement.firstChild;  
    while(Node!=null) {  
     if(Node.nodeName=="#text") { Value=reduceHtmlSpaces(Node.nodeValue); htmlText+=Value; Node.nodeValue=""; }  
     else if(Node.nodeName=="#comment" || Node.nodeName=="BR" || Node.nodeName=="HR") { htmlText+="|"; }  
    Node=Node.nextSibling;  
    }  
    // HTML-Elemente entfernen (1. Element nicht, wenn Typ 3/Textknoten)  
    for(i=(tickerElement.firstChild.nodeType==3)?1:0;i<tickerElement.childNodes.length;i++) { tickerElement.removeChild(tickerElement.childNodes[i]); }  
   }  
   // Ggf. fehlenden HTML-Textknoten einfuegen  
   if(!tickerElement.hasChildNodes()) { tickerElement.appendChild(document.createTextNode("")); }  
  }  
  
// ...  
// Schreiben  
 if(is_w3cxTicker) { tickerElement.innerHTML=text; }  
 else if(is_w3cTicker) { tickerElement.childNodes[0].nodeValue=text; }  

D.h., wenn der Browser innerHTML kennt (is_w3cxTicker ist true), nimmert er das, wenn nicht, (und W3C-DOM-Browser: is_w3cTicker ist true) arbeite mit Knoten.

Egal, ob der Text mehr oder weniger wird, ob viel oder gar nichts, egal ob in einer Tabelle oder nicht: Keinerlei Problem.

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"!