从Mac和Windows操作系统中的Chrome扩展中获取Google文档中选定/突出显示的文本

ggazkfy8  于 2022-12-06  发布在  Go
关注(0)|答案(2)|浏览(147)

目标是当用户在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上运行?**
uxhixvfz

uxhixvfz1#

我认为您需要Google企业应用套件脚本“getSelection()”
https://developers.google.com/apps-script/reference/document/document#getSelection()
还有一些其他函数处理该页上的选择和范围。
我想重点是你必须使用google docs API,而不是HTLM DOM(文档对象模型)。

5t7ly7z5

5t7ly7z52#

我试着弄清楚这一点,我看到谷歌文档使用画布显示data

document.querySelectorAll('.kix-canvas-tile-content').forEach(ll => {
    ll.onselect = function () { myselection() };
})

相关问题