Pergunta

Estou extraindo o conteúdo selecionado pelo usuário através desta função:

 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 '';

  }

  };

A extração está funcionando bem, mas não consigo encontrar uma maneira de obter a marcação original do texto selecionado no Internet Explorer.Existe alguma maneira de obter um DocumentFragment como no Firefox?Eu sei sobre o tratamento e a abordagem diferentes de ambos os sistemas, mas talvez alguém tenha encontrado uma abordagem funcional em javascript/ECMA para se livrar dos desagradáveis ​​​​complementos ...jQueryXXXXXXXXXXXX="12" em HREFs e daqueles dolorosos nomes de tags e atributos em letras maiúsculas.

De novo:é essencial selecionar a marcação exata.

Qualquer ajuda é apreciada, obrigado.

Foi útil?

Solução 2

Obrigado pela sua ajuda, finalmente descobri.Se você precisar obter o texto selecionado no Internet Explorer com tags em letras minúsculas, tente isto http://codingforums.com/showthread.php?t=148450 função e se você usar jquery e tiver pouco desagradável .jQueryXXXXXXXXXXXX="12" 13, 14 logo após cada href=""-closing " sua solução é copiar sua marcação para um div e ler seu innerHTML.

espero que ajude

Outras dicas

Suas únicas opções no IE são escrever código para percorrer o DOM entre os pontos de limite de seleção ou usar htmlText da seleção TextRange como você está fazendo.A primeira opção será bastante envolvente.Eu realmente não entendo qual é o seu problema com a segunda abordagem:você poderia ser mais preciso ou dar um exemplo do que há de errado com o HTML obtido do htmlText?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top