为了账号安全,请及时绑定邮箱和手机立即绑定

从窗口中选择的文本是空的

从窗口中选择的文本是空的

冉冉说 2021-10-29 10:10:24
我试图将选定的字符串包装在两个字符之间,例如:选择“测试”并单击更改按钮会将选定的文本更改为“atestb”问题是,我能够替换选定的文本,但 window.getSelection ().toString() 是空的。这是我使用的功能  replaceSelectedText(startTag, endTag) {    let sel, range;    console.log(window.getSelection().toString())    if (window.getSelection) {      sel = window.getSelection();      if (sel.rangeCount) {        range = sel.getRangeAt(0);        range.deleteContents();        const selectedContent = sel.toString();        console.log("Selected Content ")        console.log(selectedContent)        let replaceDiv = startTag + selectedContent;        replaceDiv=endTag ? replaceDiv + endTag : replaceDiv;        range.insertNode(document.createTextNode(replaceDiv));      }    } else if ((document as any).selection && (document as any).selection.createRange) {      range = (document as any).selection.createRange();      range.text = startTag;    }  }链接到 Stackblitz https://stackblitz.com/edit/angular-idyhj5?file=src%2Fapp%2Fapp.component.ts
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您在检索之前删除了该值。


range.deleteContents();

const selectedContent = sel.toString();

如果在删除之前翻转这两行并存储内容,它将按预期工作。


查看完整回答
反对 回复 2021-10-29
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信