2010-10-11 33 views
7

Pageload'da odaklanması gereken bir tartışmalı div (ilk satırda imleci yerleştirin) var.ContentEndivite odağı Chrome/Safari

document.getElementById("editor").focus() Firefox ve IE'de iyi çalışır, ancak Chrome/Safari'de tüm içeriği seçer!

Bu işin düzgün bir şekilde yapılmasının bir yolu var mı? peşin

sayesinde
Shesh

+0

göz atmak gibi görünüyor r sınırlaması. Sekme tuşuyla bile, div [contenteditable] öğesi odaklandığında, içindeki metni vurgular. –

+0

Yanıt için teşekkürler! Evet, TAB da öyle görünüyor. :) – Sheshbabu

+0

+1 Birisi, mükemmel bir soruyu reddetti. –

cevap

2

Bu soru artık sorgulayıcı ilgili olabilecek ama gelecek okuyucular için cevap olacak. Temel ilke, seçimi öğenin başlangıcında daraltılmış bir aralığa ayarlamaktır.

Ben rangy JS kitaplığını kullanarak bu sorunu çözdü: http://code.google.com/p/rangy

var r = rangy.createRange(); 
r.setStart(document.getElementById('editor'), 0); 
r.collapse(true); 
rangy.getSelection().setSingleRange(r); 

bu gereklidir fazlası olabilir ama kesinlikle çapraz tarayıcı çalışır ve muhtemelen bu yüzden rangy yanı Ekstra yarar bir demet sağlar içine :) ben odağı arayarak bir DIV odağı eklemek mümkün oldu

0

denenmeye() metodu attr() yöntemine zincirleme

$el.attr('contenteditable', "true").focus()