I have an iframe that contains a textarea, like so:
Try .html() instead of .val() :
var text = $('#frame1').contents().find('#area1').html();