designMode auf dynamisch erzeugtes Element setzen

one6666

Mitglied Titanium
Hallo,

weiß Jemand wie ich den designMode auf ein dynamisch erzeugtes Element bekomme ?

HTML:
HTML:
<html>

<head>

<title>Editor</title>

<script type="text/javascript" src="insert_editor.js"></script>

</head>

<body>

<div id="editor_id"></div>

</body>

</html>

Externe Javascript Datei:
HTML:
function ready(){

var editor = document.createElement("iframe");

var editor_id = document.getElementById("editor_id");

editor_id.appendChild(editor);

}

window.onload = ready;

saß jetzt bald 1 Stunde dran ohne erfolg, hab einfach alles ausprobiert zb. dem Element einen Namen zugeben und es dann über parem.name anzusprechen aber nix geht :confused:

Nachtrag:
Ich kann dem Element auch alle Attribute zuweisen die mir so einfallen geht alles zb.
HTML:
function ready(){

var editor = document.createElement("iframe");

var editor_id = document.getElementById("editor_id");

editor_id.appendChild(editor);

editor.frameBorder = "0"; //Keinen Border mehr 

}

window.onload = ready;

Aber das mit dem designMode ist mir ein Rätsel :confused:
 
Zuletzt bearbeitet:
1.Verwendest du einen Browser der diese Attribut unterstützt?
2.Wie versuchst du denn das Attribut zu setzen? sollte mit editor.contentDocument.designMode="on" funktionieren
3.Gibt es eine Fehlermeldung?
4.Funktioniert es, wenn du das Iframe nicht per javascript erstellst sondern direkt einfügst?
 
Die Browser unterstützen alle den designMode,
so wie du sagst habe ich es auch schon gemacht,
nein gibt keine Fehlermeldung,
ohne das iframe dynamisch zu erzeugen geht es, habe schon mal so einen Editor gebaut, jetzt will ich einen besseren bauen :)

Nachtrag:
Im IE gehts jetzt mit :
HTML:
function ready(){

var editor = document.createElement("iframe");

var editor_id = document.getElementById("editor_id");

editor_id.appendChild(editor);

editor.contentWindow.document.designMode = "on";

}

window.onload = ready;

Firefox will nur nicht:(
 
Zuletzt bearbeitet:
Moin,

dem FF scheint es zu schnell zu gehen, er möchte erst das Dokument geladen haben.
Füge das am Ende der Funktion ein:
Code:
editor.contentWindow.onload=function(){this.document.designMode='on'}
 
Hallo Sven,

funktioniert einwandfrei :) danke, kannst du mir mal sagen wie du so fehler quellen findest ?
 
Sowas in der Art wäre auch mein nächster Vorschlag gewesen ;). Bin nämlich gestern darauf gestoßen: http://forums.devarticles.com/javas...k-with-generated-iframe-in-mozilla-39349.html
und
Netscape and Firefox browsers need a moment after creating an inline frame before making its contents editable.

Aber Svens Lösung ist natürlich besser, als einfach 10ms zu warten, wobei es sich wohl um das gleiche Problem handelt.

Gegoogelt hatte ich übrigens nach "designmode firefox" und das ist der dritte Treffer.
 
Aber Svens Lösung ist natürlich besser, als einfach 10ms zu warten, wobei es sich wohl um das gleiche Problem handelt.

Meine Lösung wäre noch besser, wenn man die letzten beiden Zeilen tauschen würde, denn momentan ist es dem Zufall überlassen.

Es wäre gut möglich, dass der onload-Event zwischen der Abarbeitung der letzten beiden Zeilen eintritt.

Dann wäre es zu früh für die erste Zeile und zu spät für die 2. Zeile.

Ein Tauschen hätte folgenden Effekt:

wenn der onload schon gefeuert hat, wenn die Zuweisung an den onload-Event erfolgt, greift die letzte Zeile, wenn nicht, dann die Zuweisung an den onload-Event(und evtl. auch die letzte Zeile, was dann aber egal ist)
 
Zurück