Marcação original no Internet Explorer em intervalo/seleção
-
08-07-2019 - |
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.
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?