2009-12-09 2 views
2

У меня есть iframe с id = "iView" и designMode = on.Получение выделенного текста внутри iframe в IE

Мой код:

var iframeWindow = document.getElementById('iView').contentWindow.document;                        
var range = iframeWindow.getSelection().getRangeAt(0); 

Я получаю ошибку:

Microsoft JScript runtime error: Object doesn't support this property or method

Я также попытался ответы от
how to get selected text from iframe with javascript?

ответ

2

Там нет способа GetSelection для объекта документа в IE, вместо этого вы должны использовать объект выделения.

var selText; 
var iframeWindow = document.getElementById('iView').contentWindow; 
if (iframeWindow.getSelection) 
    selText = iframeWindow.getSelection()+""; 
else if (iframeWindow.document.selection) 
    selText = iframeWindow.document.selection.createRange().text; 
+0

Зачем нужно проверять iframeWindow.getSelection или iframeWindow.document.selection? – samuel

+0

Вы проверяете функциональность, которая по сути является проверкой браузера. Если браузер не поддерживает метод, эти операторы вернут false, и сценарий не будет выполняться - если проверок не было, и браузер не поддерживает метод, возникает ошибка. В качестве альтернативы вы можете использовать оператор try/catch, но обычно это метод тестирования функциональности defacto. –

+1

@samuel: Это отличный ответ, но в значительной степени идентичный паре, найденному в другом вопросе, который вы упомянули (http://stackoverflow.com/questions/1471759/how-to-get-selected-text-from-iframe -with-javascript), так как это дало вам новую информацию? –

Смежные вопросы