2010-07-24 3 views
3

Как получить выделенный текст из iframe с помощью javascript?Как получить выделенный текст из iframe с помощью javascript?

+1

Пожалуйста, добавьте дополнительную информацию. Является ли iframe указателем на страницу вашего домена? –

+1

Возможный дубликат: http://stackoverflow.com/questions/1471759/how-to-get-selected-text-from-iframe-with-javascript –

ответ

2
var $ifx = $('<iframe src="filename.html" height=200 width=200></iframe>').appendTo(document.body); 

$(document.body).bind('click', function(){ 
    var u_sel; 
    if(window.getSelection){ 
     u_sel = ifx[0].contentWindow.getSelection(); 
     // u_sel.text() InternetExplorer !! 
     alert(u_sel); 
    } 
}); 

Это должно сделать это, до тех пор, как iframe src ориентирована на свой собственный domain. Проверено только на FireFox 3.6.7.

+0

Не будет работать в IE. –

+0

Кроме того, метод 'getSelection()' объекта window возвращает объект 'Selection', а не строку. Вам нужно называть 'toString()' на нем. –

+0

@Tim Down: нет необходимости вызывать '.toString()', поскольку javascript уже выполняет эту работу за вас. – jAndy

0
function getIframeSelectionText(iframe) { 
    var win = iframe.contentWindow; 
    var doc = iframe.contentDocument || win.document; 

    if (win.getSelection) { 
    return win.getSelection().toString(); 
    } else if (doc.selection && doc.selection.createRange) { 
    return doc.selection.createRange().text; 
    } 
} 

var iframe = document.getElementById("your_iframe"); 
alert(getIframeSelectionText(iframe)); 

Как отметил JANDY, это будет работать только если IFrame документ подается из того же домена, содержащего документ.

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