2009-08-23 5 views
6

This plugin können Sie Text der Benutzer in einem Textfeld ausgewählt hat, greifen und this site hat nicht-jQuery-basierte Anweisungen für Text Grabbing der Benutzer außerhalb eines Textes ausgewählt hat Bereich.Erhalten Sie markierten Text auf der Seite (nicht in einem Textfeld) mit jQuery

Ich frage mich, ob die Funktionalität der letzteren in jedem jQuery-Plugin verfügbar ist.

Edit: Ist es auch möglich, die Start- und Endindizes der Auswahl zu erhalten? D.h., wo die Auswahl innerhalb des enthaltenden Elements beginnt und endet?

Antwort

6

Der Grund, warum es schwer ist, ein Plug-In dafür zu finden, ist nicht, dass es nicht sehr "jQuery" ish ist. Damit meine ich, dass jQuery-Plugins normalerweise mit jQuery-Objekten arbeiten und die Auswahl nichts mit irgendwelchen Elementen zu tun hat.

Bearbeiten: Ich habe die Tatsache verpasst, dass Sie diesen Link in Ihre Frage geschrieben haben, aber ich werde es unten für die Vollständigkeit lassen, da meine Version besser formatiert ist (aber ansonsten identisch). :)

<script language=javascript> 
function getSelText() { 
    var txt = ''; 
    if (window.getSelection) { 
    txt = window.getSelection(); 
    } else if (document.getSelection) { 
    txt = document.getSelection(); 
    } else if (document.selection) { 
    txt = document.selection.createRange().text; 
    } else return; 
    document.aform.selectedtext.value = txt; 
} 
</script> 
<input type="button" value="Get selection" onmousedown="getSelText()"> 
<form name=aform > 
<textarea name="selectedtext" rows="5" cols="20"></textarea> 
</form> 
+0

@Cletus - Sie gaben den gleichen Link, den er bereits in seiner Frage hatte (2. Link). – klabranche

+0

Ja, ich würde es nur bevorzugen, wenn dies als eine Art Plugin verpackt wäre (Kopieren und Einfügen von Code macht mich schmutzig). –

+0

Woops, verpasst das. – cletus

3

Es ist nichts falsch mit dem Kopieren und Einfügen von Code-Schnipsel, das ist, wie die meisten Menschen beginnen, und Sie werden es zu tun, bis Sie mit dem Schnipsel so vertraut, die Sie einfügen, dass Sie Bits modifizieren beginnen würden und Portionen oder sogar selbst von vorne anfangen.

Für diesen bestimmten Teil des Codes, sehe ich wirklich nichts falsch mit dem Kopieren es anders als nicht inline Event-Handler und unauffällig Hinzufügen der "mousedown" mit jQuery.

+1

Es schätze Horace mag es nicht, Code zu kopieren und einzufügen, als würde er in Zukunft einen Bug bekommen, der an zwei oder mehr Stellen statt nur an einem steht (wenn es nur einen Autor eines Plugins gibt). Wenn es aus einem stackoverflow Artikel mit derzeit 1.100 Ansichten ist, ist das eine Menge verschwendete Zeit. – AJP

Verwandte Themen