TinyMCE - benutzerdefinierte Schaltfläche link - "link hinzufügen" ist in Ordnung, aber finde keine Dokumentation für "Verknüpfung Bearbeiten" und Zugriff auf die link-Attribute
Habe ich Hinzugefügt eine benutzerdefinierte Schaltfläche zu TinyMCE, die bis bringt eine maßgeschneiderte link-picker. Wenn der Benutzer wählt einen beliebigen text ein und klickt auf die Schaltfläche wird der dialog angezeigt und Wann Sie abgeholt habe die url bin ich mit execCommand('insertHTML', false, "<a href... etc">)
auf die Auswahl.
Dieser funktioniert einwandfrei - jetzt, wenn der link bereits erstellt wurde, und der Nutzer will, um es zu Bearbeiten, klicken Sie auf die link-Taste erneut (wenn sich der cursor innerhalb der verlinkte text als normal), aber dann ist hier die situation - ich weiß nicht, wie Sie auf die bereits erstellte Verknüpfung, und es ist Attribute dann laden Sie oben und füllen Sie den Dialog erneut!
Haben Suche TinyMCE Website, Stack, Google im Allgemeinen. In der Hoffnung (und auch ein bisschen gefürchtet) eine einfache Antwort - aber wenn nicht, ist ein komplexer wird gut!!
Wenn jemand weiß die Antwort oder kann mir es, wäre ich sehr dankbar. Vielen Dank im Voraus,
Rob
BEARBEITEN - bits von meinem code zu erklären, müssen
In der TinyMCE init:
setup: function (ed) {
ed.addButton("link", {
title: "Link",
onclick: function (evt) {
Intranet.TextEditor._loadUrlDialog(jQueryTextAreaObject, evt);
}
});
}
Die Funktion, die aufgerufen wird, oben:
_loadUrlDialog: function (jQueryTextAreaObject, clickEvent) {
var mce = $(jQueryTextAreaObject).tinymce();
var isSelected = mce.selection.getContent().length != 0 ? true : false;
if (isSelected) {
Intranet.UrlDialog.Fn.LoadDialog("", true, "", function (url, target, title) {
var theTarget = target == false ? "_self" : "_blank";
var link = "<a href=\"" + url + "\" target=\"" + theTarget + "\" title=\"" + title + "\">" + mce.selection.getContent() + "</a>";
mce.execCommand('insertHTML', false, link); //creates new link
});
}
else {
///THIS IS THE MISSING BIT!
};
}
InformationsquelleAutor LiverpoolsNumber9 | 2011-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Möglichkeiten, dies zu erreichen:
Beim drücken der Taste, die Sie überprüfen für die Auswahl des übergeordneten Knotens. Wenn der Knoten ist ein link-dann können Sie die link-Informationen aus dem html-a-element. Füllen Sie Ihre Dialog-Sie wissen, was zu tun ist.
Die andere option ist, um ein Kontextmenu auf der rechten Maustaste, die den erforderlichen Funktionalitäten.
Hier wird der plugin-code für diese (beachten Sie, dass Sie müssen hinzufügen "customcontextmenu" um die plugin-Einstellung Ihrer tinymce).
ich trug es zu meinem Beitrag, haben Sie einen Blick auf das "onclick"
Ich habe meinen code oben - ich glaube, ich sehe, wo die Verwirrung ist - Ihre "Veranstaltung.target" ist das rechts-Klick-Ereignis-und somit das Ziel ist, wo der cursor ist. Mir ist das button-event daher, die Schaltfläche Ziel-HTML-Objekt! Also ich denke, ich muss wissen, wie man die Zielgruppe dort, wo der cursor ist?
Sie können dies tun, mit editor.Auswahl.getNode(), diese ruft die Auswahl des übergeordneten Knotens, halten Sie im Verstand, dass sein wird, unterschiedliche Ergebnisse liefern, wenn Sie ausgewählt haben, ein Teil des Textes dazu führen, dass mehrere html-Elemente können ausgewählt wurden
Dank Thariama - aber wenn es keine "Auswahl" (also der cursor genau in der Mitte von dem link) Auswahl.getNode() gibt mir die href des Links! Gibt es so etwas wie (pseudo-code) editor.getElementAtCursor()??
InformationsquelleAutor Thariama