Как получить выделенный текст из iframe, используя rangy?

Это дополнительный вопрос. Я пытался получить выделенный текст из iframe, используя rangy. Кажется, что код работает для контента без iframe. Согласно документу Ранги, это должно работать.

Вот демо: http://jsfiddle.net/codef0rmer/UuJ5G/

1 ответ

Решение

Проблема в вашем примере заключается в том, что документ iframe исходит из домена, отличного от основного документа, что означает, что скрипт, работающий в основном документе, просто не может получить доступ к документу внутри iframe. Браузер позволяет создавать сценарии только между документами, если они принадлежат одному домену.

Если документы приходят с одного и того же домена, вы можете получить выбор, используя rangy.getIframeSelection():

http://jsfiddle.net/UuJ5G/42/

Rangy 1.3 ослабляет ограничения на параметры, передаваемые rangy.getSelection() а также rangy.createRange(): оба примут любой из окна, документа или <iframe> элемент, так что вы можете просто передать iframe в rangy.getSelection():

http://jsfiddle.net/2d6Bk/56/

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