Vorrei selezionare il testo sulla pagina simulando il pulsante sinistro del mouse e trascinandolo in una posizione x, y specificata (in pixel)Posso simulare la selezione del testo con il mouse in JavaScript?
È possibile farlo con JavaScript?
Vorrei selezionare il testo sulla pagina simulando il pulsante sinistro del mouse e trascinandolo in una posizione x, y specificata (in pixel)Posso simulare la selezione del testo con il mouse in JavaScript?
È possibile farlo con JavaScript?
Non penso sia possibile controllare il mouse in questo modo utilizzando JavaScript.
Tuttavia, è possibile selezionare parti di un documento direttamente utilizzando JavaScript. Ad esempio:
var h3s = document.getElementsByTagName("h3");
var range = document.createRange();
range.selectNode(h3s[0]);
window.getSelection().addRange(range);
seleziona il primo elemento h3.
Vedere anche: http://www.quirksmode.org/dom/range_intro.html per ulteriori informazioni sugli intervalli di costruzione.
Per selezionare l'intero corpo di un documento, è possibile utilizzare:
var body = document.getElementsByTagName("body")[0];
var range = document.createRange();
range.selectNode(body);
window.getSelection().addRange(range);
Per selezionare il 3 ° carattere, per esempio, il 4 ° paragrafo in un documento, provate:
var p4 = document.getElementsByTagName("p")[3].firstChild;
var range = document.createRange();
range.setStart(p4, 2);
range.setEnd(p4, 3);
window.getSelection().addRange(range);
per quanto ne so che non si può fare. l'unico testo che puoi selezionare è in un elemento del modulo (textarea, testo di input, ecc.)
/** * Select text between 2 elements. Support selection of continuous elements. * @param {Object} element1 begin element. * @param {Object} element2 end element. */ function selectBetweenTwoElements(element1, element2) { if (window.getSelection) { /* all browsers, except IE 8 and IE 7 */ var selection = window.getSelection(); selection.removeAllRanges(); var range = document.createRange(); range.setStart(element1, 0); range.setEnd(element2, 1); selection.addRange(range); } else { /* works fine in IE 8/IE 7 */ if (document.body.createControlRange) { var range1 = document.body.createTextRange(); range1.moveToElementText(element1); var range2 = document.body.createTextRange(); range2.moveToElementText(element2); var range = document.body.createTextRange(); range.setEndPoint("StartToStart", range1); range.setEndPoint("EndToEnd", range2); range.select(); } } }
Posso anche selezionare fino alla metà dell'elemento .. come, lettera # 3? Inoltre, il tuo esempio è in grado di selezionare, diciamo un elemento del corpo, che contiene vari div, font, ecc.? – thedp
Sì, vedere post modificato. – Andy