wysihtml5覆盖链接对话行为

ben*_*phw 7 javascript wysihtml5

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

我已经弄清楚如何做到这一点 - 这是我正在做的一个简化的例子:

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

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

我试图将一个新事件绑定到编辑器中的链接,但我无法弄清楚如何做到这一点(因为它们在iframe中).

如何在不显示当前网址的情况下获取wysihtml5链接对话框以显示链接地址?

小智 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">
Run Code Online (Sandbox Code Playgroud)

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