Hab ein Problem mit nem HTML-Editor, der eigentlich im IE ab 5.0 funktionieren sollte, aber leider tut er´s nur im 5.0 - 5.5 und 6.0 zicken rum ... kann mir jemand sagen wieso?
http://www.elpix.ag/_dev/elpix/
IE 5.5 und 6.0 melden "Zugriff verweigert" an zwei bis drei Stellen.
Zeile 266, Zeichen 7: var r = content.selection.createRange();
Zeile 295, Zeichen 7: content.body.innerText = content.body.innerHTML;
Zeile 231, Zeichen 5: return (viewsource ? content.body.innerText : content.body.innerHTML);
content und viewsource sind übrigens global als var deklariert (Zeile 215) und werden in der Funktion edit_init definiert.
P.S.: Umbenennen der Variable "content" in "cntdoc" hat nix gebracht.
PPS: Um den Fehler zu verursachen, einfach weiter klicken auf die admin.php und da auf einen der schicken Buttons klicken!
[Editiert von Titus am 17-12-2001 um 14:09]
Erhalte dargestellte Fehlermeldung nicht mit IE6.0!
Bereits gefunden?!
Wenn nicht, genauen Event spezifieren. Denn Script ist mir zu lang, um durchzuarbeiten.
[Editiert von Blaster am 17-12-2001 um 14:47]
a) bei Internetoptionen -> erweitert -> Browsing: Häkchen vor "Skriptfehler anzeigen"?
b) Funktionieren die Buttons so, wie sie sollen?
Das Event ist immer das onClick.
Wenn ich im IE5.5 oder 6.0 auf irgend einen der Grafik-Buttons klicke, gibt´s zwei Skriptfehler und das Formular wird abgeschickt.
Eigentlich soll vor Abschicken des Formulars der HTML-Code des iFrame in ein hidden field kopiert werden - wird aber nicht!
Erhalte keine Fehlermeldungen, Formular wird aber abgeschickt wie beschrieben. Kann Fehler noch nicht finden, stand by....
Gib Bescheid, wenn sich Problem erledigt hat.
Mögliche Erklärungen:
function cms_exec ()
{
if (viewsource)
{
alert ('Formatierung funktioniert hier nicht');
}
else
{
266: var r = content.selection.createRange();
267: var arg = cms_exec.arguments;
switch (arg.length)
{
270: case 0: r.execCommand();
break;
case 1: r.execCommand(arg[0]);
break;
case 2:
if ('#selectColor'==arg[1])
selectColor('r.execCommand("'+arg[0]+'", "false", "%")');
else if ('#'==arg[1])
eval (arg[0]);
else
r.execCommand(arg[0], 'false', arg[1]);
break;
case 3:
if ('#'==arg[1])
eval (arg[2]);
}
cntwin.focus();
}
}
1) Bist Du sicher das 267 so funktioniert,als Inline-Definition?! Sollte man nicht besser mit this arbeiten.
2) Bei 270 übergibst Du in r.execCommand(); keine Argumente
Nach MSDN-Doku
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dyncontent/textrange.asp
wird aber ein Argument verlangt.Dies könnte vielleicht eine sofortige Selbstreferenzierung auslösen.
NC:Dienstag
Blaster
das cms_exec wird nicht ohne Parameter aufgerufen, aber danke für den Hinweis.
an der Inline-Definition liegt es auch nicht ...
Aber wenn ich in der Funktion edit_init (nach der Definition von content) versuche, content anzusprechen: kein Problem. Versuche ich es unmittelbar NACH dem Aufruf in der letzten Zeile, wird die Erlaubnis verweigert.
PS: Die Meldung ist Erlaubnis verweigert nicht Zugriff verweigert, aber es kommt aufs gleiche raus - es funzt nicht!
*seufz*
Falls ich noch was rausfinde, melde ich mich latürnich.
keine Ahnung wieso es mit content nicht geklappt hat, mit cntwin gab es immerhin keine Probleme.
Aber ich hab es jetzt auf die harte Tour gelöst und die Variable einfach hinter dem Funktionsaufruf nochmal extra definiert, nu tut´s.
Ist zwar Flickschusterei, aber momentan ist die Hauptsache dass es läuft!