我有这个HTML:
<script type="text/javascript">
function uploadDone(response) {
alert(response);
}
function init() {
document.getElementById('file_upload_form').onsubmit=function() {
document.getElementById('file_upload_form').target = 'upload_target'; //'upload_target' is the name of the iframe
document.getElementById("upload_target").onload = uploadDone(response);
}
}
</script>
<form method="get" id="file_upload_form" enctype="multipart/form-data" action="../includes/parsecsv.ajax.php" target="upload_target">
<label class="uploadClick">
<button class="normal">Click to Upload Sign Ups CSV</button>
<input type="file" id="uploadSignups file" name="file">
</label>
<span class="uploadDrag"><span>or</span>Drag Your Sign Ups CSV Here</span>
<button type="submit" name="action">hello</button>
<iframe id="upload_target" name="upload_target" src="" style="width:0px; height:0px; border:none;"></iframe>
</form>
当您单击提交按钮时,应该通过<iframe>
以文件方式上传文件输入中的所选文件。我似乎已经能够进行上传,但上传完成时似乎没有运行uploadDone()
?有什么想法吗?
答案 0 :(得分:0)
我想你只需要在iFrame的窗口元素中添加一个事件:
document.getElementById("upload_target").contentWindow.onload = function(response) { uploadDone(response) };
另外,请注意我将uploadDone
包裹在一个函数中;否则,它只会调用它并将事件设置为它返回的任何内容。
答案 1 :(得分:0)
使用IFrame的父属性How to access parent Iframe from javascript
答案 2 :(得分:0)
在这里,您需要创建一个具有响应和的JSP文件
在JSP中编写一些脚本来访问已加载到文档中的uploadDone
方法。
JSP中的脚本可以是:
parent.document.uploadDone(response);