2014-12-02 16 views

risposta

29

Secondo MDN

selezione. anchorNode - Restituisce il nodo in cui inizia la selezione.

Selezione. focusNode - Restituisce il nodo in cui termina la selezione.

perché ci sono stati dibattiti sull'assegnazione del nome, baseNode è alias per anchorNode, extentNode per focusNode

Il seguente è oltre la portata di questa domanda, ma vi posterò questo comunque, come ho trovato la selezione di essere una parte difficile in alcuni scenari.

Date un'occhiata a questo esempio:

<p>ab12<sup>3</sup>4567890 !</p> 

Diciamo che abbiamo fatto selezione "1234567890". Ho fatto una foto per spiegare dove sono i nodi di ancoraggio e messa a fuoco e gli offset.

window.getSelection

+2

Sembra che ci siano alcune incongruenze (forse bug) con baseNode e extentNode dove non corrispondono anchorNode e focusNode, rispettivamente, in alcuni casi. Tuttavia non riesco a vedere alcun motivo per usarli. – Synexis

1

Non sono affatto un esperto, ma sperimentando mi sembra che il nodo di ancoraggio sia il nodo in cui è iniziata la selezione e focusNode quello in cui è terminato (presumibilmente perché ha il focus una volta terminata la selezione).

baseNode sembra essere lo stesso di anchorNode e extentNode lo stesso di baseNode, solo che non esistono in Firefox, solo in Chrome.

2

Sono stato la costruzione di una funzione che richiede elementi contentEditable nidificati. Durante il debug ho notato che baseNode e extentNode sono NOT solo alias. Sto cercando di trovare la documentazione su di loro dal momento che non sono in MDN. Ma in base a questo screenshot non vorrei supporre che siano solo alias (in Chrome): enter image description here