Ich habe mit Auswahl/Bereich Objekte gearbeitet, und wegen der unglaublichen Menge an Inkonsistenzen zwischen Browsern für bestimmte Auswahl/Bereich Sachen (sogar mehr als das DOM) habe ich mich gefragt, ob es ein Framework gab das würde mir helfen, durch sie hindurchzukommen.JavaScript Auswahl/Bereich Rahmen
Antwort
(Made eine Antwort auf Anfrage;)
Werfen Sie einen Blick auf IERange:
IERange ist ein Feature-complete Implementierung des W3C DOM Ranges für Internet Explorer, so dass Anwender Schreib ein Cross-Browser-Version von ihre Bereich Manipulation Code.
Unterstützt Bereich APIs:
document.createRange()
startContainer
,startOffset
,endContainer
,endOffset
,commonAncestorContainer
,collapsed
setStart()
,setEnd()
,setStartBefore()
,setStartAfter()
,setEndBefore()
,setEndAfter()
,selectNode()
,selectNodeContents()
,collapse()
insertNode()
,surroundContents()
extractContents()
,cloneContents()
,deleteContents()
compareBoundaryPoints()
,cloneRange()
,createContextualFragment()
,toString()
Unterstützt Selection APIs:
- Bereichsunterstützung (Webkit-style)
window.getSelection()
addRange()
,removeAllRanges()
,getRangeAt()
,toString()
Die größte Stärke von IERange sind die Algorithmen, die einen 'TextRange' in Bezug auf Knoten und Offsets (wie es ein Bereich tut) ausdrücken und dieses und ein Objekt wieder in einen' TextRange' konvertieren. Es kann jedoch die Unterschiede zwischen den beiden nicht vollständig abstrahieren: Beispielsweise wird sich der zugrunde liegende 'TextRange' als Reaktion auf Änderungen im DOM ändern, während der darauf aufbauende 'IERange' diese Änderungen nicht widerspiegelt. Es gibt auch Diskrepanzen zwischen der Darstellung der Benutzerauswahl als Bereich und dem Browser. [Fortsetzung] –
Beachten Sie auch, dass das Erstellen eines 'IERange' enorm viel langsamer ist als das Erzielen eines DOM-Bereichs in anderen Browsern. Keine davon ist der Fehler der Bibliothek; Es ist einfach die Natur des Problems. Kurz gesagt, beste Verwendung mit Sorgfalt und Kenntnis der Abstraktion "IERange" darstellt. –
fieldselection ist ein sehr nützliches jquery plugin für Auswahl/Bereich Manipulation.
Funktioniert nur für Textareas und Eingaben. –
ich eine neue Reihe/Auswahl-Bibliothek geschrieben haben genannt Rangy, die im Konzept IERange ähnlich ist, aber geht ziemlich viel weiter.
Der Kern ist ziemlich vollständig und
currently available to download. Ich bin derzeit Bugfixing und Dokumentation und es sollte nur ein paar Wochen vor einer vollständigen Veröffentlichung sein.
UPDATE 31. August 2011
Rangy ist jetzt stabil und in der Version 1.2 (downloads page).
Danke für deine großartige Arbeit an Rangy Tim Down. Ich verwende deine lib in meinem neuen Projekt und habe dir bereits einen Fehlerbericht geschickt. Ich denke, es wäre eine gute Idee, eine Mailing-Liste zu erstellen, so dass es möglich ist, Probleme/Features zu diskutieren und neue Features (vielleicht mit einem Patch) vorzuschlagen. Ich versuche z. B. gerade einen startOffset und einen endOffset für den commonAncestorContainer zu bekommen, anstatt Container zu starten/zu beenden. Dies wäre ein hilfreiches Feature, glaube ich. – Tom
Haben Sie http://code.google.com/p/ierange/ gesehen? –
Roatin, genau das habe ich gesucht! Kannst du es eine Frage machen, damit ich dich aufmuntere?:) –
Ich meine Antwort: D –