Нужно выделить и скопировать текст из 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.