Link einfügen in contenteditable-element
Arbeite ich an ein einfaches blog-system, und ich bin mit contenteditable, so dass die Benutzer können den text formatieren.
Bis jetzt alles funktioniert wie ein Charme.
Nächste, was ich möchte, ist, dass Benutzer können fügen Sie einen hyperlink in den text ein.
Den Benutzer zu wählen (Teil -) text und klicken Sie auf den link-button. Danach wird ein popup geöffnet, in dem die Benutzer sollten Sie die link-Adresse.
Wenn der Benutzer klickt auf die Schaltfläche "akzeptieren" möchte ich hinzufügen, dass der link zu dem text, den Sie ausgewählt in der contenteditable.
Wie kann ich das implementieren dieser Funktionalität, da habe ich keine Ahnung, wie dies zu tun?
Meine Website: http://82.170.147.49/blog/3/alpha-release
jsFiddle meiner Website: http://jsfiddle.net/qhN9j/
InformationsquelleAutor der Frage PeeHaa | 2011-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
document.execCommand()
macht dies für Sie in allen gängigen Browsern:Zur Erhaltung der Auswahl, während Ihr link-Dialogfeld angezeigt wird, können Sie die folgenden Funktionen verwenden:
jsFiddle Beispiel: http://jsfiddle.net/JRKwH/1/
UPDATE
Auf die link(s) erstellt (wenn alle erstellt wurden), ist heikel. Sie könnte meine eigenen Feingliedrig Bibliothek:
... oder so etwas wie die folgenden:
jsFiddle: http://jsfiddle.net/JRKwH/3/
InformationsquelleAutor der Antwort Tim Down
Als alfred sagte, gibt es bereits gut entwickelte Editoren, vor allem für die grundlegenden Funktionen. Sie kann ihn einschränken, verwenden Sie so wenige oder so viele Funktionen, wie Sie möchten.
Den schwierigen Teil in neu zu entwickeln, ist, dass alle Browser handeln etwas anders. Die folgenden sollte bekommen Sie in die richtige Richtung bewegen in den meisten Browsern, außer dem IE:
InformationsquelleAutor der Antwort clmarquart
InformationsquelleAutor der Antwort antibug
Ich würde es so machen:
href
- Attribut um Sie zu identifizieren.document.querySelector('a[href=<unique-href>]')
.Der Vorteil dabei ist, dass Sie nicht haben, um mit zu arbeiten
Selection
überhaupt.InformationsquelleAutor der Antwort Erik Aigner