javascript - 检查选择是否包含链接

标签 javascript html hyperlink execcommand

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

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

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

我尝试使用 document.queryCommandState('createLink')document.queryCommandState('unlink'),但这两个查询始终返回 false code>,即使 document.queryCommandState('bold') 工作正常。

最佳答案

我发现了下面的代码,暂时运行得很好,在 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 }
  }
}

关于javascript - 检查选择是否包含链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47232304/

相关文章:

html - 需要 CSS 帮助 |悬停图像 |放大效果

html - 按住单击时超链接颜色会发生变化

javascript - 表就绪 jquery 必须触发

javascript - CSS 中的 Circle div 无法在 Canvas 中正确显示

javascript - 是否有任何可用的 javascript 图表与 flex 图表一样好?

javascript - 错误 : "Access to restricted URI denied"

html - word-wrap:break-word css 属性在 IE8 标准模式下不起作用

javascript - WooCommerce 删除我添加到产品简短描述中的自定义 jQuery 代码

Symfony2 <a> 链接 'post' 或 'delete' 或 'put' 方法

javascript - 场外特定链接上的退出消息