我们正在使用Kendo UI Editor控件。如何强制它只插入将打开到新窗口的链接(即target =“_ blank”)?
这需要在javascript中完成,而不是Razor。我已尝试在执行和选择事件上获取它,但到目前为止都没有。
答案 0 :(得分: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);
});
}
}
});
查找编辑器内容中的所有链接并设置其目标属性。这可以通过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");