Kendo UI Editor - 强制所有新链接到新窗口

时间:2013-02-07 17:44:01

标签: javascript kendo-ui

我们正在使用Kendo UI Editor控件。如何强制它只插入将打开到新窗口的链接(即target =“_ blank”)?

这需要在javascript中完成,而不是Razor。我已尝试在执行和选择事件上获取它,但到目前为止都没有。

2 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点:

  1. 自动选中“插入链接”对话框中的“在新窗口中打开链接”复选框。以下是一个示例实现:http://jsbin.com/ekibud/1/edit。想法是订阅编辑器的execute事件,如果命令是“createlink”,请选中复选框。这是必需的代码:

    $("#editor").kendoEditor({
       execute: function(e) {
          if (e.name == "createlink") {
            setTimeout(function() {
              $("#k-editor-link-target").attr("checked", true);
            });
          }
       }
    });
    
  2. 查找编辑器内容中的所有链接并设置其目标属性。这可以通过JavaScript和正则表达式替换:

    var editor = $("#editor").data("kendoEditor");
    
    var html = editor.value();
    
    // remove all existing target attributes
    
    html = html.replace(/<a[^>]*/, function(a) {
      // first remove existing target attribute
      a = a.replace(/target\s*=\s*['"][^"']*['"]/, '');
    
      // then add a target attribute
      a += ' target="_blank"';
    
      return a;
    });
    // Use the updated html
    

答案 1 :(得分:1)

每次都没有分配编辑器值的简单解决方案

var editor = $("#editor").data("kendoEditor");

$(editor.body).find("a").attr("target", "_blank");