编程语言
首页 > 编程语言> > javascript-如何测试所选文本是否为链接?

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