我正在尝试通过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());
获取内容。
问题是我的contents()请求和iframe刷新之间的同步,实际上jquery是第一个,而iframe刷新之后。通过这种方式,我无法达到真正的反应。
P.S。 我已经尝试了live(),on(),更改()con框架内容,但所有这些事件只启动一次(当我在提交表单之前选择文件时),因此无用
谢谢你的建议
答案 0 :(得分: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());
});
这只是我的头脑。
答案 1 :(得分:0)
加载iframe后检查内容。
$('#iframe').load(function () {
$(this).contents();
});