Нужно выделить и скопировать текст из Google Doc Viewer в буфер обмена

Мне нужно создать процесс, в котором пользователю будет показан документ, и пользователь сможет выделить текст и скопировать (и в конечном итоге вставить) текст из некоторых частей документа.

Я использую Google Doc Viewer в iframe (так как мне нужен универсальный Doc Viewer, который бесплатен - хотя я открыт для других идей о зрителях). Google Doc Viewer делает то, что мне нужно, но мне кажется, что у меня нет доступа к внутренним элементам iframe, чтобы получить выделенное содержимое.

Я посмотрел на многие ссылки, связанные с активацией копии (cntl-c) в javascript, но ничего твердого в этом процессе.

В идеале я хотел бы, чтобы кнопка за пределами фрейма щелкала, что скопировало бы в буфер обмена выбор, сделанный пользователем в программе просмотра Google doc.

Любое предложение о том, как этого добиться?

2 ответа

Использующий window.getSelection();,

учебное пособие: http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

Для тех, кто ищет ответ. Вы можете получить выделенный текст внутриdocs-texteventtarget-iframe.

      const iframe = document.querySelector(".docs-texteventtarget-iframe")
const selectedText = iframe.contentDocument.getSelection().toString()
console.log(selectedText)

ВНИМАНИЕ: Загвоздка в том, что по какой-то причине он не работает в Windows и Mac Chrome. Пока работает только в ubuntu chrome.

Другие вопросы по тегам