В отличие от объектов Image, IFrames не будут загружаться до тех пор, пока они не станут частью DOM.
Чтобы обойти это, вы можете скрыть элемент, добавить его в DOM, и когда при запуске события load отобразится его:
var val = "http://dumb.com/";
$('<iframe />')
.hide()
.attr('src', val)
.attr('width', "500")
.load(function(){
$(this).show();
})
.appendTo(".showdata");
http://jsfiddle.net/ET8Gw/1/