我的页面中有一个来自其他子域的iframe。 在这个iframe我有一个表格
<div id="main"></div>
<form id="fileForm" method="POST" action="https://othersub.samedomain.de/upload" enctype="multipart/form-data">
<input name="filename" type="file" id="filename"><br>
<input name="action" type="hidden" value="fileupload">
<a href="#" id="file-upload">upload</a>
</form>
在我的JS中我有这个:
$(document).ready(function() {
$("#file-upload").click(function(event){
event.preventDefault();
console.log("CLICK EVENT");
$("#fileForm").submit();
});
$("#fileForm").ajaxForm({
'target': '#main',
'dataType': 'json',
'type': 'POST',
'url': 'https://othersub.samedomain.de/upload',
beforeSubmit: function(){
/* show loading */
},
success: function(response, statusText, xhr, $form) {
/* do */
},
error: function(response, statusText, xhr, $form) {
/* do */
}
});
});
所以我点击我的上传按钮,我在IE中成为一个错误的错误: (访问被拒绝)SCRIPT5
这是代码的这一行(554):
submitFn.apply(form);
或更多:
try {
form.submit();
} catch(err) {
// just in case form has element with name/id of 'submit'
var submitFn = document.createElement('form').submit;
submitFn.apply(form);
}
当他必须使用iframe上传时,会发生在旧IE中。 我希望你能帮忙。
最好的问候
答案 0 :(得分:0)
输入文件有一个大问题,在IE上需要点击这个元素,如果你用一个javascript来模拟这个点击,你提交后就会出现一个错误。试试这个,将输入文件与alpha 0和过滤器0放在假按钮上以选择文件
样本
START HTML--------------------------------
< form ... >
< input type="file" id="ID_INPUTFILE" ....>
< a href="#" id="FAKE_BUTTON"> CHOSE YOU FILE < /a>
...
< /form >
< /html>
END HTML----------------------------------
START CSS---------------------------------
< style>
form { position:relative; }
#FAKE_BUTTON {
width: 200px;
height: 30px;
left: 10px;
top: 10px;
z-index:2;
}
#ID_INPUTFILE {
position: absolute;
width: 200px; /*WIDTH_OF_FAKE_BUTTON*/
height: 30px; /*HEIGHT_OF_FAKE_BUTTON*/
left: 10px; /*LEFT_POSITION_OF_FAKE_BUTTON */
top: 10px; /*TOP_POSITION_OF_FAKE_BUTTON */
z-index: 3; /*ALWAY OVER FAKE BUTTON */
opacity: 0.0; /*TO PUT INVISIBLE */
filter: alpha(opacity=0); /*TO PUT INVISIBLE fix ie */
}
< /style>
END CSS-----------------------------------