我们正在使用 Kendo UI Editor 控件。如何强制它只插入将在新窗口中打开的链接(即 target="_blank")?
这需要在 javascript 中完成,而不是 Razor。我已经尝试在执行和选择事件中使用它,但到目前为止都没有奏效。
我们正在使用 Kendo UI Editor 控件。如何强制它只插入将在新窗口中打开的链接(即 target="_blank")?
这需要在 javascript 中完成,而不是 Razor。我已经尝试在执行和选择事件中使用它,但到目前为止都没有奏效。
一个简单的解决方案,无需每次都分配编辑器值
var editor = $("#editor").data("kendoEditor");
$(editor.body).find("a").attr("target", "_blank");
有两种方法可以做到这一点:
自动选中“插入链接”对话框中的“在新窗口中打开链接”复选框。这是一个示例实现: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);
});
}
}
});
查找编辑器内容中的所有链接并设置其目标属性。这可以通过 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