Kai: Zuweisung document.body.innerHTML funktioniert unter IE9 nicht

Beitrag lesen

Hallo!

Ich hab schon mal nach meinem Problem gegoogelt, aber da hörte es sich so an, als ob innerHTML eher vom Standard aufgenommen wurde wie dass es nicht mehr unterstützt wird. Ich versuche meinen Code so anzupassen, dass der Kompatibilitätsmodus nicht aktiviert werden muss.

Ich zeige meine XML-Dateien mit Servlets an, gebe an mein xsl den Suchparameter mit. Wenn der Suchparameter nicht leer ist, rufe ich im Javascript die highlightSearchTerms auf. Es wird auch keine Fehlermeldung angezeigt, aber die Suchbegriffe werden ab IE9 nicht mehr hervorgehoben.

function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)  
{  
  if (treatAsPhrase) {  
    searchArray = [searchText];  
  } else {  
    searchArray = searchText.split(" ");  
  
  var bodyText = parent.frames[4].document.body.innerHTML;  
  for (var i = 0; i < searchArray.length; i++) {  
    bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);  
  }  
  parent.frames[4].document.body.innerHTML = bodyText;  
  return true;  
}  
  
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)  
{  
  if ((!highlightStartTag) || (!highlightEndTag)) {  
    highlightStartTag = "<font style='color:blue; background-color:yellow;'>";  
    highlightEndTag = "</font>";  
  }  
  
  var newText = "";  
  var i = -1;  
  var lcSearchTerm = searchTerm.toLowerCase();  
  var lcBodyText = bodyText.toLowerCase();  
  
  while (bodyText.length > 0) {  
    i = lcBodyText.indexOf(lcSearchTerm, i+1);  
    if (i < 0) {  
      newText += bodyText;  
      bodyText = "";  
    } else {  
      // skip anything inside an HTML tag  
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {  
        // skip anything inside a <script> block  
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {  
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;  
          bodyText = bodyText.substr(i + searchTerm.length);  
          lcBodyText = bodyText.toLowerCase();  
          i = -1;  
        }  
      }  
    }  
  }  
  return newText;  
}  

Habt ihr einen Tipp für mich?
LG Kai