ContentEditable se enfoca en Chrome / Safari

Tengo un div contenteditable que debe enfocarse en la carga de la página (colocar el cursor en la primera línea).

document.getElementById("editor").focus() funciona bien en Firefox e IE, pero en Chrome / Safari simplemente selecciona todo el contenido.

¿Hay alguna manera de hacer que esto funcione correctamente?

Gracias por adelantado,
Shesh

Es posible que esta pregunta ya no sea relevante para el interrogador, pero la responderé para futuros lectores. El principio básico es establecer la selección en un rango contraído al inicio del elemento.

Resolví este problema utilizando la biblioteca Rangy JS: http://code.google.com/p/rangy

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

Esto podría ser más de lo necesario, pero definitivamente funciona en todos los navegadores y Rangy también ofrece un montón de utilidades adicionales, así que probablemente valga la pena investigarlo 🙂

Pude agregar enfoque a un DIV llamando al método focus () encadenado al método attr ()

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