Obtenga valor de div con javascript: no se defina siempre

Tuve este problema cuando obtengo el valor de un div:

function sync(){
    var n1 = document.getElementById('editor').value;
    alert(n1);
    var n2 = document.getElementById('news');
    n2.value = n1;
}

div con ideditor Se ve como esto:

<div class='message'  id='editor' contenteditable="true" onkeyUp='sync()' style="color: black"></div>

Cuando pongo algo en ese div, me alertará indefinido y eso también vendrá en el área de texto, también lo pego. Entonces el problema es obviamente por esto:

var n1 = document.getElementById('editor').value;

¿Qué estoy haciendo mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta