IFrame editable setzen ( bei Bedarf, also wenn der Iframe lädt :))

B

ByeBye 8492

Moinsen,
habe mir einen WYSIWYG Editor geschrieben, welcher mit Iframes arbeitet.
Nun hab ich ein Problem, dieser Editor wird in einem CMS eingesetzt, dass heisst das er manchmal gebraucht wird und manchmal nich, das macht sich aber schwer. Weil wenn er nicht gebraucht wird, muss ich bisher trotzdem noch die <javascrip> Datei einfügen ( ist im header so eingestellt ..).

Der IE und Mozilla zeigen dann einen Fehler an. Wäre praktisch wenn es einer wüsste ob man das auch Direkt in den IFrame reinschreiben könnte:

<!-- based on the Midas Demo -->
function load(){
getIFrameDocument('editorWindow').designMode = "On";
document.getElementById('editorWindow').contentWindow.focus();
document.getElementById('editorWindow').contentWindow.document.execCommand("useCSS", false, true);
}

function getIFrameDocument(aID){
if (document.getElementById(aID).contentDocument){
return document.getElementById(aID).contentDocument;
}
else {
return document.frames[aID].document;
}
}

EDIT: Oder kurz von den Iframe .. weil Mozilla lädt die Seite dann immer wieder neu :(
 
Das, was du da gepostet hast, verursacht garantiert keinen Fehler... da dort kein Funktionsaufruf ist.

Um den Fehler zu orten, müsste man mehr sehen.
Ich frag mich nur eines ... dein CMS wird doch sicher wissen, wann der designMode benötigt wird... dann sollte es doch ein Leichtes sein, das Skript nur bei Bedarf einzublenden:confused:
 
Sven Mintel hat gesagt.:
Das, was du da gepostet hast, verursacht garantiert keinen Fehler... da dort kein Funktionsaufruf ist.

Um den Fehler zu orten, müsste man mehr sehen.
Ich frag mich nur eines ... dein CMS wird doch sicher wissen, wann der designMode benötigt wird... dann sollte es doch ein Leichtes sein, das Skript nur bei Bedarf einzublenden:confused:
Es weiß, wann es den Design mode braucht, aber das Problem ist, das so wie ich es kennengelernt habe, muss ich im <body> Tag schreiben onload="load()" ... durch einen Denkfehler im Templatesystem kriege ich es aber nicht hin den <body> Tag nachträglich noch zu verändern, womit das Problem wäre das ich es nich editable setzen könnte.

Somit ist das Problem wieder da ... :(. Kleine Ursachen ziehen dummerweise manchmal große Probleme nach sich *G* ;).

EDIT: Hab es schon ausprobiert alles was da steht, kurz vor der Initalisierung des Editors zu schreiben ( Quasi direkt vor den Iframe ) habe es mit <Script type="text/javascript"> eingebungen und es klappt nicht :(.

Javascript ist mir irgendwie suspekt :(
 
Zuletzt bearbeitet von einem Moderator:
du musst es nicht per <body onload="load()"> machen....
auch folgendes...im Skriptblock notiert, sollte funktionieren:
Code:
window.onload=load;
 
Sven Mintel hat gesagt.:
du musst es nicht per <body onload="load()"> machen....
auch folgendes...im Skriptblock notiert, sollte funktionieren:
Code:
 window.onload=load;
Japp, das funktioniert :D, womit dann nur noch das Problem ist,das es dann trotzdem immer noch im Headerbereich stehen muss und dadurch eigentlich immer inkludiert sein muss/wird.. naja ma sehen, vielleicht finde ich da ja noch ne Lösung für :)
 
Im <head> solls nicht stehen, im <body>solls nicht stehen.... da wird die Wahl langsam eng, oder.

Wer sagt übrigens, das Skripte im <head> stehen müssen?
 
Es wäre praktisch wenn man den JavaScript Code direkt in dem EditorTemplate initalisieren könnte.
Also so in etwa:

<script type="text/javascript" src="includes/editor.js"></script>
<div align="left">{advanced_bb}</div>
<iframe src="empty.php?messageid=$message" name="editorWindow" id="editorWindow" width="100%"></iframe>

Aber das klappt ja noch nich ganz. Dass heisst er initalsiert den Editor wunderbar. Allerdings zeigt der IE immer noch einen Fehler in dem Script an und ich kann den einfach nich finden, der hat was mit der Funktion load() und getIframe() zu tun ... aber ich seh da eigentlich nichts falsches dran, ich mein ich kann zwar kein JS ;)
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück