2014-02-07 6 views
6

Ich möchte beliebigen Text als Link hrefs mit wysihtml5 hinzufügen können. Zum Beispiel: Ich diese <a href="[~55~]">link</a>wysihtml5 Override-Link-Dialogverhalten

Ich habe gearbeitet generieren will, wie dies zu tun - hier ist ein vereinfachtes Beispiel, was ich tue:

editor = new wysihtml5.Editor("text_area_content", {toolbar: "wysihtml5-toolbar"}) 
editor.composer.commands.exec("createLink", { href: "[~"+55+"~]" }) 

Das Problem ist jetzt ich habe, ist, dass nach Erstellen eines Links, wenn dieser Link im Editor ausgewählt ist, zeigt das Dialogfeld den Link als "http: // current_url/[~ 55 ~]" an. Ich möchte, dass es nur "[~ 55 ~]" zeigt.

Ich habe versucht, ein neues Ereignis an Links innerhalb des Editors zu binden, aber ich konnte nicht herausfinden, wie das geht (da sie in einem Iframe sind).

Wie kann ich den wysihtml5-Link-Dialog erhalten, um die Link-Adresse anzuzeigen, ohne die aktuelle URL anzuzeigen?

Antwort

4

In wysihtml5/src/toolbar/dialog.js wird eine Methode _interpolate über den Link aufgerufen, der die Attribute des Links übernimmt und im Dialog anzeigt. Was immer in der href="..." ist, wird im Eingabeelement des Dialogs angezeigt.

Beispiel aus der Inline-Dokumentation:

https://github.com/xing/wysihtml5/blob/master/src/toolbar/dialog.js

<!-- original link --> 
    <a href="http://www.google.com" target="_blank">foo</a> 

<!-- dialog: --> 
    <input type="text" data-wysihtml5-dialog-field="href" value=""> 
    <input type="text" data-wysihtml5-dialog-field="target" value=""> 

<!-- after calling _interpolate() the dialog will look like this --> 
    <input type="text" data-wysihtml5-dialog-field="href" value="http://www.google.com"> 
    <input type="text" data-wysihtml5-dialog-field="target" value="_blank"> 

Also, wenn Sie die Methode _interpolate in Ihrer Anwendung erweitern können Sie überprüfen konnten, wenn der Attributname href ist und zeigt dann nur den relativen Teil (ohne den Servernamen).

+0

Vielen Dank für Ihre Antwort. Es wäre sehr hilfreich, wenn Sie ein Beispiel dafür geben könnten, wie man so etwas macht. – benjaminjosephw

+0

Danke, dass Sie mich in die richtige Richtung weisen. Ein kleines Beispiel dafür, wie man dieses Standardverhalten überschreiben könnte, würde immer noch sehr geschätzt werden, wenn Sie ... – benjaminjosephw

+1

Ich werde das Kopfgeld für eine hilfreiche Antwort vergeben ... immer noch ein Beispiel würde dies eine wirklich gute Antwort machen. – benjaminjosephw

Verwandte Themen