目标是当用户在Google文档中选择文本时获得突出显示的文本,如下所示:
由于window.getSelection()
在Google文档中不起作用,因此它们公开docs-texteventtarget-iframe
元素来呈现用户选择的文本
下面是我用来获取文本的代码:
const iframe = document.querySelector(".docs-texteventtarget-iframe")
const selectedText = iframe.contentDocument.getSelection().toString()
console.log(selectedText)
但是在Mac和Windows的chrome版本(105.0.5195.102)中,iframe不会呈现选中的文本,因此上面的代码返回空字符串" "
。
在ubnuntu chrome版本105.0.5195.102(相同版本)中,所选文本在iframe元素中呈现:
iframe.contentDocument.getSelection().toString()
返回 * 一个男人站在路中间 *。
- 为什么它只能在运行于Ubnutu的Chrome上运行?**
2条答案
按热度按时间uxhixvfz1#
我认为您需要Google企业应用套件脚本“getSelection()”
https://developers.google.com/apps-script/reference/document/document#getSelection()
还有一些其他函数处理该页上的选择和范围。
我想重点是你必须使用google docs API,而不是HTLM DOM(文档对象模型)。
5t7ly7z52#
我试着弄清楚这一点,我看到谷歌文档使用画布显示data。