2011-06-04 28 views
5

bir Selection nesne herhangi bir kullanıcı etkileşimi olmadan oluşturulabilir mi? window.getSelection() bir Selection nesneyi döndürmek yapar, ancak kullanıcı yapılan seçime çeşit vardır o sürece modify() olamaz.Herhangi bir kullanıcı etkileşimi olmadan seçim nesnesi oluşturulabilir mi?

Sayfadaki ilk öğe ile başlayan ve daha sonra kullanıcının bir şey yapmasına gerek kalmadan modify() yapabilecek bir seçim oluşturmak mümkün mü?

Örnek: http://jsfiddle.net/niklasvh/L5M3U/

Bu sayfa yüklemesinde bir şey seçmez, ancak herhangi bir şey tıklarsanız onu seçim yapmaya yapar. Ben ne istediğini anlamak

cevap

9

, o zaman evet, programlı onun addRange() yöntemi kullanarak seçim ayarlayabilirsiniz. Sayfa yüklendiğinde, yapabileceğin Örneğin, belgenin <body> elemanın tamamını seçmek için:

function selectBody() { 
    var range = document.createRange(); 
    range.selectNode(document.body); 
    var sel = window.getSelection(); 
    sel.removeAllRanges(); 
    sel.addRange(range); 
} 

window.onload = selectBody; 

Bu aralıklar ve seçimler için bütün farklı bir yaklaşım vardır IE < 9, üzerinde çalışmaz.

+0

teşekkürler! Tam da aradığım şey. IE uyumsuz ve onların TextRange vb hakkında biliyorum, bu sadece iyi olacak. – Niklas

+1

notu, '' range.selectNode (element) '' '' '' '' '' içHTML' içeriğine sahip olmalıdır. Yoksa bu işe yaramaz – Jonathan

İlgili konular