Исходная разметка в Интернет-обозревателе в Диапазоне / Выборе

StackOverflow https://stackoverflow.com/questions/1641358

Вопрос

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

 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, чтобы избавиться от неприятных дополнений ... JQUERYXXXXXXXXXXXXXXX="12" в HREFs и этих болезненных тегов в верхнем регистре и имен атрибутов.

Снова:очень важно правильно выбрать разметку.

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

Это было полезно?

Решение 2

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top