Оригинальная разметка в Internet Explorer в диапазоне / выделении - PullRequest
0 голосов
/ 29 октября 2009

Я извлекаю контент, выбранный пользователем с помощью этой функции:

 function getSelectionHTML() {

  var userSelection;
  if (window.getSelection)
  {

   // W3C Ranges
   userSelection = document.getElementById('axPage').contentWindow.getSelection();
   // Get the range:
   if (userSelection.getRangeAt)
    var range = userSelection.getRangeAt (0);
   else
   {
    var range = document.createRange ();
     range.setStart (userSelection.anchorNode, userSelection.anchorOffset);
     range.setEnd (userSelection.focusNode, userSelection.focusOffset);
   }

   var clonedSelection = range.cloneContents ();
   var div = document.createElement ('div');
   div.appendChild (clonedSelection);
   return div.innerHTML;

  }
  else if (document.selection)
  {
userSelection = self.frames['axPage'].document.selection.createRange();
   return userSelection.htmlText;
  }
  else
  {

   return '';

  }

  };

Извлечение работает нормально, но я не вижу способа получить исходную разметку выделенного текста в Internet Explorer. Есть ли способ получить DocumentFragment, как в Firefox? Я знаю о различной обработке и подходе обеих систем, но, возможно, кто-то нашел работающий подход в javascript / ECMA, чтобы избавиться от неприятных ... jQueryXXXXXXXXXXXXX = "12" аддонов в HREF и этих болезненных заглавных тегах и их именах.

Опять же: важно точно выбрать выбранную разметку.

Любая помощь приветствуется, спасибо.

Ответы [ 2 ]

1 голос
/ 29 октября 2009

Ваши единственные опции в IE - это написание кода для обхода DOM между граничными точками выделения или использование htmlText из выделения TextRange, как вы делаете. Первый вариант будет довольно сложным. Я не совсем понимаю, в чем ваша проблема со вторым подходом: не могли бы вы быть более точным или привести пример того, что не так с HTML, который вы получаете из htmlText?

0 голосов
/ 31 октября 2009

Спасибо за вашу помощь, я наконец понял это. Если вам нужно получить выделенный текст в Internet Explorer с тегами в нижнем регистре, попробуйте эту функцию http://codingforums.com/showthread.php?t=148450, и если вы используете jquery и имеете неприятный маленький .jQueryXXXXXXXXXXXXX = "12" 13, 14 сразу после каждого отдельного href = " «-Закрыть» ваше решение - скопировать разметку в div и прочитать его innerHTML.

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...