Original-Markup im Internet Explorer in Bereich/Auswahl
-
08-07-2019 - |
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.
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?