also ehrlich gesagt kenn ich mich noch nicht so gut mit javascript aus ... der editor ist von interactivetools.com htmlarea ... ich hab mich in den letzten 4 tagen intensiv damit beschäftigt und habs jetzt eben so weit zusammen gebracht das ich einen link erstelle! aber hier hast du mal nen ausschnitt mit dem source ... dens übrigens frei zum download gibt - sehr cool das ding!! läuft übrigens unter "IE 5.5+ (Windows)/Mozilla 1.3 (all OS) cross platform functionality" laut it ... jetzt möcht ich halt schauen das meine erweiterung auch überall läuft weil ich sie ja auch zur verfügung stellen will ... wer nimmt soll ja auch geben nicht?
das createRange und select range hat er einer eigenen funktion übergeben wo er das abarbeitet:
// returns the current selection object
HTMLArea.prototype._getSelection = function() {
if (HTMLArea.is_ie) {
return this._doc.selection;
} else {
return this._iframe.contentWindow.getSelection();
}
};
// returns a range for the current selection
HTMLArea.prototype._createRange = function(sel) {
if (HTMLArea.is_ie) {
return sel.createRange();
} else {
this.focusEditor();
if (typeof sel != "undefined") {
return sel.getRangeAt(0);
} else {
return this._doc.createRange();
}
}
};
********************************************************************
das ist die link funktion dazu:
HTMLArea.prototype._insertLink = function() {
var sel = this._getSelection();
var range = this._createRange(sel);
var editor = this; // for nested functions
this._popupDialog("insert_link.html", function(param) {
if (!param) { // user must have pressed Cancel
return false;
}
var doc = editor._doc;
var IT = range.text;
alert(inner);
// erstellt das linkelement
var lin = doc.createElement("a");
// assign the given arguments
for (var field in param) {
var value = param[field];
if (!value) {
continue;
}
switch (field) {
case "href" : lin.href = value; break;
case "target" : lin.target = value; break;
}
}
doc.appendChild(lin);
lin.innerText = IT;
if (HTMLArea.is_ie) {
range.pasteHTML(lin.outerHTML);
} else {
// insert the table
editor.insertNodeAtSelection(lin);
}
return true;
}, null);
};
aber ich glaub besser is wenn du dir das ding saugst ;) zwegs übersicht - ich werd das jetzt mal ausprobieren was du da geschrieben hast wird etwas länger dauern weil ich ja noch nicht so der guru bin hehe / Thx auf jeden fall als anfänger in js hatte ich jetzt echt keine idee mehr, aber dein ansatz klingt gut ... bin halt php-programmierer nicht so OOP.
ich hoffe ich darf mich wieder melden wenn ich hänge bzw. mein source *gg*!
schönen tag noch
ivan