document.execCommand 的createLink 命令,默认是不添加target参数的
需要将createLink 命令替换为 insertHTML 命令,手工拼装link
var sText = document.getSelection();
document.execCommand('insertHTML', false, '<a href="' + newValue + '" target="_blank">' + sText + '</a>');
上面代码只能处理文本链接 如果是图片链接 需要使用到range,可以不再使用execCommand insertHTML,而是直接操作range,这种方式更加灵活
var range = document.getSelection().getRangeAt(0);
var innerDom = range.extractContents();
var link = $("<a href='a' target='_blank'></a>");
link.append(innerDom);
range.insertNode(link[0]);
参考文档:
http://stackoverflow.com/questions/23811132/adding-a-target-blank-with-execcommand-createlink