2012-03-22 93 views
0

我试图上传文件低谷iframe中。读iframe中的内容后提交表单中的iframe

我以这种方式创建的iframe:

<iframe frameBorder="0" height="50px" width="100%" id="iframe-upload"/> 

在这之后我的iframe追加到DOM:

$('#iframe-upload').contents().find('body').append('<form method="post" action="admin/images/upload" enctype="multipart/form-data" id="form-upload-image"><input name="data[image]" type="file" id="image-upload" /><input type="button" id="btn"></form>').appendTo("#formupload"); 

提交我的行为是这样的:

$("#iframe-upload").contents().find('#btn').bind('click', function(){ 
    $("#iframe-upload").contents().find('#form-upload-image').submit() 

}) 

现在,我无法弄清楚当我打电话:

console.log($("#iframe-upload").contents()); 

获取内容。

问题是我的内容()请求和iframe刷新,其实jQuery的先行和IFRAME刷新之后之间的同步。这样我就无法达到真正的回应。

p.s. (),(),改变()con帧的内容,但所有这些事件只会触发一次(当我提交表单之前选择文件),所以都没用

谢谢你的建议

回答

0

您应该能够提交表单之前抢来自iframe的内容。为了达到这个目的,你可以将一个函数绑定到窗体的onSubmit事件上。

$('#form-upload-image').bind('submit', function (event) { 
    event.preventDefault(); 

    console.log($("#iframe-upload").contents()); 

    this.submit(); 
}); 

或可能

$('#form-upload-image').submit(function() { 
    console.log($("#iframe-upload").contents()); 
}); 

这只是从我的头顶。

+0

我必须抓取iframe之后的内容重新加载否BEFORE :) – misfotto 2012-03-22 16:41:56

0

检查的iframe后的内容被加载。

$('#iframe').load(function() { 
    $(this).contents(); 
});