4

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

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

4

2 回答 2

2

一个简单的解决方案,无需每次都分配编辑器值

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

$(editor.body).find("a").attr("target", "_blank");
于 2016-08-29T10:07:26.750 回答
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
    
于 2013-02-08T08:26:54.270 回答