Question

J'extrais le contenu sélectionné par l'utilisateur via cette fonction :

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

  }

  };

L'extraction fonctionne bien, mais je ne semble pas trouver de moyen d'obtenir le balisage original du texte sélectionné dans Internet Explorer.Existe-t-il un moyen d'obtenir un DocumentFragment comme dans Firefox ?Je connais la gestion et l'approche différentes des deux systèmes, mais peut-être que quelqu'un a trouvé une approche efficace en javascript / ECMA pour se débarrasser des méchants ...jQueryXXXXXXXXXXXXX="12" addons dans les HREF et de ces douloureux noms de balises et d'attributs en majuscules.

Encore:il est essentiel de sélectionner le balisage exact.

Toute aide est appréciée, merci.

Était-ce utile?

La solution 2

Merci pour votre aide, j'ai enfin compris.Si vous avez besoin d'obtenir du texte sélectionné dans Internet Explorer avec des balises en minuscules, essayez ceci http://codingforums.com/showthread.php?t=148450 fonction et si vous utilisez jquery et que vous avez un petit .jQueryXXXXXXXXXXX="12" 13, 14 juste après chaque href=""-closing ", votre solution consiste à copier votre balisage dans un div et à lire son innerHTML.

J'espère que cela pourra aider

Autres conseils

Vos seules options dans IE sont d'écrire du code pour parcourir le DOM entre les points limites de sélection ou d'utiliser htmlText de la sélection TextRange comme vous le faites.La première option sera assez complexe.Je ne comprends pas vraiment quel est votre problème avec la deuxième approche :pourriez-vous être plus précis ou donner un exemple de ce qui ne va pas avec le HTML que vous obtenez de htmlText ?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top