我试图创建一个自定义CMS的迷你WYSIWYG编辑器。它有添加和删除链接的选项。它可以很好地添加链接,但希望有将target="_blank"
添加到超链接的选项。此外,如果可能的话,我希望能够添加alt=""
和title=""
。
目前,这是我的代码:
function addLink() {
var linkURL = prompt('Enter a URL:', 'http://');
editorWindow.document.execCommand('createlink', false, linkURL);
}
四处张望,似乎找不到解决办法。我看到的大多数解决方案都说:
function addLink() {
var linkURL = prompt('Enter a URL:', 'http://');
var newLink = editorWindow.document.execCommand('createlink', false, linkURL);
newLink.target = "_blank";
}
但这似乎行不通。有什么建议吗?
发布于 2014-05-27 13:47:47
我找到了解决办法。不知道这是不是正确的方法,但它有效。遵循https://stackoverflow.com/a/5605841/997632,这是我的代码工作所用的:
function addLink() {
var linkURL = prompt('Enter a URL:', 'http://');
var sText = editorWindow.document.getSelection();
editorWindow.document.execCommand('insertHTML', false, '<a href="' + linkURL + '" target="_blank">' + sText + '</a>');
}
以防其他人发现这件事.
发布于 2016-05-04 16:38:43
如果您以前有粗体或斜体,insertHTML可能会感到沮丧。我使用以下方法:
var url = 'example.com';
var selection = document.getSelection();
document.execCommand('createLink', true, url);
selection.anchorNode.parentElement.target = '_blank';
发布于 2017-08-01 21:43:35
我知道这个线程已经很旧了,但是让我把我的2分钱放进去,也许有人会发现这很有用;)我也在开发一个WYSIWYG编辑器,因为我发现当我试图从FF中的选定图像中创建一个链接( getSelection().getRangeAt(0)返回图像的父div并将图像当作它从来没有存在的时候(我就是这样看待它)),这是一个肮脏但有效的解决方案(而且,我认为,这是我想出的(JQuery)的想法:
//somewhere before losing the focus:
sel = window.getSelection().getRangeAt(0);
//reselecting:
window.getSelection().addRange(sel);
//link:
document.execCommand('createLink', false, 'LINK_TO_CHANGE');
$('a[href="LINK_TO_CHANGE"').attr('target', '_blank');
//any other attr changes here
$('a[href="LINK_TO_CHANGE"').attr('href', theRealHref);
这主意好吗?就像一种魅力。而这种简单性^^
https://stackoverflow.com/questions/23811132
复制相似问题