Frage

Ich extrahiere vom Benutzer ausgewählte Inhalte über diese Funktion:

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

  }

  };

Die Extraktion funktioniert einwandfrei, aber ich finde anscheinend keine Möglichkeit, das Original-Markup des ausgewählten Texts im Internet Explorer abzurufen.Gibt es eine Möglichkeit, ein DocumentFragment wie in Firefox zu erhalten?Ich weiß um die unterschiedliche Handhabung und Herangehensweise beider Systeme, aber vielleicht hat jemand in Javascript / ECMA einen funktionierenden Ansatz gefunden, um die fiesen ...jQueryXXXXXXXXXXXXX="12" Addons in HREFs und die lästigen Tag- und Attributnamen in Großbuchstaben loszuwerden.

Wieder:Es ist wichtig, dass das exakte Markup ausgewählt wird.

Wir freuen uns über jede Hilfe, danke.

War es hilfreich?

Lösung 2

Vielen Dank für Ihre Hilfe, ich habe es endlich herausgefunden.Wenn Sie im Internet Explorer ausgewählten Text mit Tags in Kleinbuchstaben erhalten möchten, versuchen Sie dies http://codingforums.com/showthread.php?t=148450 Funktion und wenn Sie jquery verwenden und böse kleine .jQueryXXXXXXXXXXXXX="12" 13, 14 direkt nach jedem einzelnen href=""-closing " haben, besteht Ihre Lösung darin, Ihr Markup in ein Div zu kopieren und dessen inneres HTML zu lesen.

Ich hoffe, das hilft

Andere Tipps

Ihre einzigen Optionen im IE bestehen darin, Code zu schreiben, um das DOM zwischen den Auswahlgrenzpunkten zu durchlaufen, oder ihn zu verwenden htmlText aus der Auswahl TextRange, wie Sie es tun.Die erste Option wird ziemlich kompliziert sein.Ich verstehe nicht wirklich, was Ihr Problem mit dem zweiten Ansatz ist:Könnten Sie genauer sein oder ein Beispiel dafür geben, was mit dem HTML, das Sie von htmlText erhalten, nicht stimmt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top