JavaScript: createRange, работа с выделением

dazed

Гуру форума
Регистрация
31 Мар 2007
Сообщения
208
Реакции
54
С наступающим вас товарищи!

Столкнулся с необходимостью получить из iframe который есть на странице, выделенный мышкой HTML.

Работал с createRange, при получении выделенного текста в textarea, использовал такой код:

Код:
function get_selected(_obj_name)
{

var area=document.getElementsByName(_obj_name).item(0);

// Mozilla 
if (document.getSelection)
{ 
 var sel_txt = area.value.substring(area.selectionStart, area.selectionEnd);
}else
{ // ie
 var sel_txt=document.selection.createRange().text; 
}
 return sel_txt;
}

Вроде бы похожие вещи при работе с iframe должны, но не получается. Пробовал различные варианты. Кто нибудь поможет/подскажет с этим вопрос?
 
Куча материала перелопатил и вот получился работоспособный код:



На удивление IE очень обрадовал. Намного легче получить html и более качественнее выделяется.

Но оказался один не хороший нюанс, оказывается, чтобы получить html выделенной области, iframe должен быть только с нашего сайта.. :( В целях безопасности видимо сделано.

Есть ли какоето красивое решение, чтобы разрешить это делать?
Пока вижу вариант с загрузкой через PHP, но в этом случае по ползет графика.
 
Через JS родительского документа не получить доступ к дочернему iframe с другого домена. И да, именно в целях безопасности.
 
iframe на div не получается заменить?

с div таких проблем возникать не должно...
 
Назад
Сверху