Jump to content
  • 0

Получить в переменную html код выделенной области?


Aroused
 Share

Question

Всем добрый вечер! Помогите с решением.

Задача - получить html код выделенной области на странице.

То есть, мы вешаем обработчик на событие выделения (ну, можно mouseup),

который при срабатывании запустит функцию, которая в свою очередь,

вернёт строку выделенной области с наличием html тегов,

буд-то мы выделяли исходный html код страницы.

Где копал:

1. document.getSelection(); document.selection.createRange().text; window.getSelection();

- в возвращаемых объектах нет удобных методов и значений решающих мою задачу.

2. библиотека jQuery++ (amd/range.js)

- $.Range.current() - возвращает выделенную строку без тегов.

- $.Range.parent() - возвращает текущий DOM Node выделенной области.

Подскажите, что как можно решить такую задачу?

Edited by Aroused
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Да, пытаясь решить эту задачу я попал на ту же статью на хабре.

Там решение есть только для ie -

TextRange.htmlText - вернет HTML-содержимое объекта.

UPD:

А вот и счастье, совсем забыл про stackoverflow.

... here's a function that will get you HTML corresponding to the current selection in all major browsers:


function getSelectionHtml(){
var html = "";
if(typeof window.getSelection != "undefined"){
var sel = window.getSelection();
if(sel.rangeCount){
var container = document.createElement("div");
for(var i = 0, len = sel.rangeCount; i < len; ++i){
container.appendChild(sel.getRangeAt(i).cloneContents());
}
html = container.innerHTML;
}
}else if(typeof document.selection != "undefined"){
if(document.selection.type == "Text"){
html = document.selection.createRange().htmlText;
}
};
return html;
};

Edited by Aroused
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By Mihail2205
      Здравствуйте, текст не очень хорошо читается на фоне сайта и хотелось бы сделать под него подложку, но чтобы она занимала минимум места и не перекрывала изображение. Как когда текст выделяют курсором.
       
      Как хотелось бы во вложении.
      Заранее спасибо за помощь!

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy