2017-11-10 205 views
0

我正在创建一个富文本编辑器,我想使用相同的按钮来链接和取消链接选择。检查选择是否包含链接

document.execCommand('createLink'...)document.execCommand('unlink'...)允许用户链接和取消链接window.getSelection().toString()

但是,有没有内置的方法来确定选择是否链接或不在首位,所以我的问题是:如何检查选择是否链接?

我一直在使用document.queryCommandState('createLink')document.queryCommandState('unlink')试过,但两者的查询总是返回false,即使,例如,document.queryCommandState('bold')正常工作。

+0

你使用jQuery?或者它是香草JavaScript? –

+0

@AlvaroMontoro vanilla JS – Anthony

+0

@AlvaroMontoro好吧,我想到了一种做法。我可以缓存选择内容,然后搜索文本的主体标签并修改它的方式 – Anthony

回答

0

我发现下面的一段代码,它暂时的作品不够好,对SO踢左右:

const isLink =() => { 
    if (window.getSelection().toString !== '') { 
    const selection = window.getSelection().getRangeAt(0) 
    if (selection) { 
     if (selection.startContainer.parentNode.tagName === 'A' 
     || selection.endContainer.parentNode.tagName === 'A') { 
     return [true, selection] 
     } else { return false } 
    } else { return false } 
    } 
}