gpt4 book ai didi

javascript - 如何测试所选文本是否为链接?

转载 作者:行者123 更新时间:2023-11-29 10:50:54 24 4
gpt4 key购买 nike

我有一个使用 contenteditable 的非常简单的所见即所得编辑器。它工作正常,但我想测试所选文本是否被用作链接。当我使用 document.queryCommandState('CreateLink') 时,它总是返回 false,即使文本位于 anchor 内。示例如下。

我做错了吗,还是有另一种方法来测试文本当前是否用作链接?

<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 在我的所见即所得编辑器中处理选择。我检查父节点是否是 anchor ,然后获取 anchor 的 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!");}

关于javascript - 如何测试所选文本是否为链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com