sonic: designMode und white-space: pre in Firefox

Beitrag lesen

Hi!

Ich versuche gerade, einen Quellcode-Editor auf designMode bzw. contentEditable umzubauen und stosse dabei in Firefox auf das Problem, das beim Laden bereits vorhandene Newlines im Editor-Content ignoriert werden. Vereinfacht gesagt ist das Vorgehen folgendes:

  
var editor_content = load_code_from_somewhere();  
  
var iframe = document.createElement('iframe');  
iframe.contentDocument.designMode = 'on';  
  
//erzeuge html, head, title, body usw. für iframe und append()e das Ganze  
  
var iframe_body = iframe.getElementsByTagName('body')[0];  
  
iframe_body.innerHTML = '<span>' + editor_content.replace(/</g, '&lt;') + '</span>';  
  
iframe_body.style.whiteSpace = 'pre';  
  

In Opera funktioniert das Ganze einwandfrei, aber Firefox ignoriert die Newlines, d.h. der komplette Editor-Inhalt steht in einer Zeile. Wenn ich die Zeile mit dem designMode auskommentiere, stellt FF die newlines korrekt dar (aber dann kann ich natürlich nicht mehr editieren).

Wenn ich stattdessen die Zeile mit dem whiteSpace auskommentiere und das Attribut nachträglich in Firebug von Hand einstelle, ist die Darstellung ebenfalls korrekt.

Falls jemand ne Idee hätte, wie ich FF davon überzeugen kann, die newlines ohne händische Eingriffe korrekt darzustellen, würde mir das echt weiterhelfen.