Obtener texto textarea con javascript o Jquery

Tengo un iframe que contiene un textarea, así:

  

Quiero obtener el texto textarea en la página principal. He intentado esto:

 var text = $('#frame1').contents().find('#area1').val(); 

Pero se devuelve una cadena vacía. Sin embargo, si pongo un valor dentro de las tags, este valor se devuelve con éxito:

  

¿Cómo puedo obtener el valor del área de texto de la página que contiene el iframe?

LEYENDO el contenido de :

 var text1 = document.getElementById('myTextArea').value; // plain JavaScript var text2 = $("#myTextArea").val(); // jQuery 

ESCRIBIENDO al ‘:

 document.getElementById('myTextArea').value = 'new value'; // plain JavaScript $("#myTextArea").val('new value'); // jQuery 

Ver DEMO JSFiddle aquí.

¡ No use .html() o .innerHTML !

No se debe utilizar jQuery’s .html() y JavaScript .innerHTML , ya que no captan cambios en el texto de la tabla de texto.

Cuando el usuario escribe en el área de texto, el .html() no devolverá el valor tipeado, sino el original, consulte el violín de demostración anterior para ver un ejemplo.

Para obtener el valor de un área de texto con una ID, solo tienes que hacer

Editado

 $("#area1").val(); 

Si tiene más de un elemento con el mismo ID en el documento, entonces el HTML no es válido.

Puede usar val() .

 var value = $('#area1').val(); $('#VAL_DISPLAY').html(value); 

Obtener texto textarea con JavaScript:

   

Now what

function go() { var c1 = document.getElementById('area1').value; var d1 = document.getElementById('as'); d1.innerHTML = c1; }

http://jsfiddle.net/PUpeJ/3/

Pruebe .html () en lugar de .val ():

 var text = $('#frame1').contents().find('#area1').html(); 

Como dijo @Darin Dimitrov, si no es un iframe en el mismo dominio no es posible, si es así, compruebe que $("#frame1").contents() devuelve todo lo que debería, y luego verifique si el cuadro de texto está encontró:

$("#frame1").contents().find("#area1").length debe ser 1.

Editar

Si cuando su área de texto está “vacía”, se devuelve una cadena vacía y cuando se ingresa un texto que devuelve ese texto, ¡funciona perfectamente! Cuando el área de texto está vacío , se devuelve una cadena vacía

Editar 2 Ok. Aquí hay una forma, no es muy bonita, pero funciona:

Fuera del iframe accederás al área de texto de esta manera:

 window.textAreaInIframe 

Y dentro del iframe (que supongo que tiene jQuery) en el documento listo ponga este código:

 $("#area1").change(function() { window.parent.textAreaInIframe = $(this).val(); }).trigger("change"); 

% 100 Solución: $ (‘textarea [name = “areaname”]’). Val ()