Ich habe innerhalb eines CMS einen JS-Editor implementiert, der ein paar Schwächen aufweist, die ich leider alleine nicht in den Griff bekomme.
1.) Innerhalb des Editors gibt es eine Funktion, um Bilder einzufügen. Leider hat das Bild nicht automatisch border="0". Die Funktion sieht folgendermaßen aus:
function AddImage(rte) {
imagePath = prompt('Enter Image URL:', 'http://');
if ((imagePath != null) && (imagePath != "")) {
document.getElementById(rte).contentWindow.focus()
document.getElementById(rte).contentWindow.document.execCommand('InsertImage', false, imagePath);
}
document.getElementById(rte).contentWindow.focus()
}
Und der Aufruf der Funktion:
document.writeln(' <td><img class="btnImage" src="rte/images/post_button_image.gif" width="25" height="24" alt="Add Image" title="Add Image" onClick="AddImage(\'' + rte + '\')"></td>');
Hat jemand eine Idee, wie das Skript aussehen muß, um den Rand auf "O" zu stellen?
2.)Bei Verlinkungen die vom Editor erzeugt werden, gibt es keine Möglichkeit, das Target anzugeben.
function FormatText(rte, command, option) {
if ((command == "forecolor") || (command == "hilitecolor")) {
parent.command = command;
buttonElement = document.getElementById(command);
document.getElementById('cp' + rte).style.left = getOffsetLeft(buttonElement) + "px";
document.getElementById('cp' + rte).style.top = (getOffsetTop(buttonElement) + buttonElement.offsetHeight) + "px";
if (document.getElementById('cp' + rte).style.visibility == "hidden")
document.getElementById('cp' + rte).style.visibility="visible";
else {
document.getElementById('cp' + rte).style.visibility="hidden";
}
//get current selected rte
currentRTE = rte;
//get current selected range
var sel = document.getElementById(rte).contentWindow.document.selection;
if (sel!=null) {
rng = sel.createRange();
}
}
else if (command == "createlink") { // && browser.isIE55up == false
var szURL = prompt("Enter a URL:", "");
document.getElementById(rte).contentWindow.document.execCommand("Unlink",false,null)
document.getElementById(rte).contentWindow.document.execCommand("CreateLink",false,szURL)
}
else {
document.getElementById(rte).contentWindow.focus();
document.getElementById(rte).contentWindow.document.execCommand(command, false, option);
document.getElementById(rte).contentWindow.focus();
}
}
Der Aufruf der Funktion sieht so aus:
document.writeln(' <td><img class="btnImage" src="rte/images/post_button_hyperlink.gif" width="25" height="24" alt="Insert Link" title="Insert Link" onClick="FormatText(\'' + rte + '\', \'createlink\')"></td>');
An welcher Stelle müsste hier z.B. target="blank" eingefügt werden? Ideal wäre natürlich ein Popup-menü mit Auswahl zwischen _blank, _self etc. :-)
Vielen Dank für Eure Hilfe
Lufine
1.) Innerhalb des Editors gibt es eine Funktion, um Bilder einzufügen. Leider hat das Bild nicht automatisch border="0". Die Funktion sieht folgendermaßen aus:
function AddImage(rte) {
imagePath = prompt('Enter Image URL:', 'http://');
if ((imagePath != null) && (imagePath != "")) {
document.getElementById(rte).contentWindow.focus()
document.getElementById(rte).contentWindow.document.execCommand('InsertImage', false, imagePath);
}
document.getElementById(rte).contentWindow.focus()
}
Und der Aufruf der Funktion:
document.writeln(' <td><img class="btnImage" src="rte/images/post_button_image.gif" width="25" height="24" alt="Add Image" title="Add Image" onClick="AddImage(\'' + rte + '\')"></td>');
Hat jemand eine Idee, wie das Skript aussehen muß, um den Rand auf "O" zu stellen?
2.)Bei Verlinkungen die vom Editor erzeugt werden, gibt es keine Möglichkeit, das Target anzugeben.
function FormatText(rte, command, option) {
if ((command == "forecolor") || (command == "hilitecolor")) {
parent.command = command;
buttonElement = document.getElementById(command);
document.getElementById('cp' + rte).style.left = getOffsetLeft(buttonElement) + "px";
document.getElementById('cp' + rte).style.top = (getOffsetTop(buttonElement) + buttonElement.offsetHeight) + "px";
if (document.getElementById('cp' + rte).style.visibility == "hidden")
document.getElementById('cp' + rte).style.visibility="visible";
else {
document.getElementById('cp' + rte).style.visibility="hidden";
}
//get current selected rte
currentRTE = rte;
//get current selected range
var sel = document.getElementById(rte).contentWindow.document.selection;
if (sel!=null) {
rng = sel.createRange();
}
}
else if (command == "createlink") { // && browser.isIE55up == false
var szURL = prompt("Enter a URL:", "");
document.getElementById(rte).contentWindow.document.execCommand("Unlink",false,null)
document.getElementById(rte).contentWindow.document.execCommand("CreateLink",false,szURL)
}
else {
document.getElementById(rte).contentWindow.focus();
document.getElementById(rte).contentWindow.document.execCommand(command, false, option);
document.getElementById(rte).contentWindow.focus();
}
}
Der Aufruf der Funktion sieht so aus:
document.writeln(' <td><img class="btnImage" src="rte/images/post_button_hyperlink.gif" width="25" height="24" alt="Insert Link" title="Insert Link" onClick="FormatText(\'' + rte + '\', \'createlink\')"></td>');
An welcher Stelle müsste hier z.B. target="blank" eingefügt werden? Ideal wäre natürlich ein Popup-menü mit Auswahl zwischen _blank, _self etc. :-)
Vielen Dank für Eure Hilfe
Lufine
Kommentar