7

我希望能够使用 wysihtml5 添加任意文本作为链接href。例如:我想生成这个<a href="[~55~]">link</a>

我已经想出了如何做到这一点 - 这是我正在做的一个简化示例:

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

我现在遇到的问题是,在创建链接后,当在编辑器中选择此链接时,对话框将链接显示为“http://current_url/[~55~]”。我希望它只显示“[~55~]”。

我试图将一个新事件绑定到编辑器中的链接,但我不知道如何做到这一点(因为它们在 iframe 中)。

如何让 wysihtml5 链接对话框显示链接地址而不显示当前 url?

4

1 回答 1

4

在链接上调用wysihtml5/src/toolbar/dialog.js一个方法,该方法_interpolate获取链接的属性并将它们显示在对话框中。因此,对话框中的任何内容href="..."都会显示在对话框的输入元素中。

内联文档中的示例:

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">

因此,如果您可以在应用程序中扩展 _interpolate 方法,您可以检查属性名称的时间href,然后只显示相关部分(没有服务器名称)。

于 2014-02-12T11:08:50.203 回答