javascript-如何测试所选文本是否为链接?
作者:互联网
我有一个使用contenteditable的非常简单的WYSIWYG编辑器.它工作正常,但我想测试是否将所选文本用作链接.当我使用document.queryCommandState(‘CreateLink’)时,即使文本在锚点内,它也始终返回false.下面的例子.
我做错了吗,还是有另一种方法可以测试当前是否将文本用作链接?
<script>
function testLink () {
// check if this is a link
var state = document.queryCommandState('CreateLink');
alert(state);
// create the link
document.execCommand ('CreateLink', false, 'http://www.example.com');
}
</script>
<div contenteditable="true">Here is some sample text to test with.</div>
<br /><br />
<button onclick="testLink();">Test the state of the create link command</button>
解决方法:
这是一个旧线程,但是由于我当前正在处理同一问题,所以我想将您指向一个已经存在的答案:check execCommand createlink status
简而言之,queryCommandState(“ CreateLink”)似乎不起作用.我在我的所见即所得编辑器中使用rangy处理选择.我检查父节点是否是锚点,然后获取锚点的href并将其写入我的链接对话框.这是我脚本中的简化示例:
var range = rangy.getSelection().getRangeAt(0);
var container = range.commonAncestorContainer;
if (container.nodeType == 3) {container = container.parentNode;}
if(container.nodeName === "A") {alert ("Yes, it's an anchor!");}
标签:wysiwyg,javascript 来源: https://codeday.me/bug/20191201/2080072.html