2010-10-11 13 views
7

Tengo un div satisfactorio que debe estar enfocado en pageload (coloque el cursor en la primera línea).ContenidoEnfoque editable en Chrome/Safari

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

¿Hay alguna manera de que esto funcione correctamente?

Gracias de antemano,
Shesh

+0

parece estar navegar r limitación Incluso con la tecla tab también cada vez que div [contenteditable] obtiene el foco, resalta el texto dentro de él. –

+0

¡Gracias por la respuesta! Sí, parece ser el caso con TAB también. :) – Sheshbabu

+0

+1 Alguien ha votado negativamente su pregunta perfectamente buena. –

Respuesta

2

Esta pregunta ya no pueden ser relevantes para la pregunta, pero voy a responder a ella para futuros lectores. El principio básico es establecer la selección en un rango colapsado al inicio del elemento.

He resuelto este problema mediante el uso de 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 a través del navegador y Rangy proporciona un montón de utilidades extra, así que es probable que sea vale la pena analizar :)

0

pude añadir el foco a un DIV llamando la atención() método encadenado al método attr()

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