SCRIPT5: Access denied
jquery.min.js, line 3 char 3769
我得到这个错误通过简单的形式在IE中只提交
$("#icon_upl").click(function(){ //icon_upl is button which open dialog
$("[name=icon]").click();
});
$("[name=icon]").change(function() { //icon is hidden file input
$("[name=upload_icon]").submit();
});
我发送该表单隐藏的iframe是在同一个域。
<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;display:none;"></iframe>
<form name="upload_icon" action="upload_icon.php" method="post" enctype="multipart/form-data" target="upload_target">
提交输入没有帮助
我不明白它的Cuz,如果我尝试发送另一种形式的工作正常
如果你是触发选择文件通过JS对话框,那么你将在提交表单时收到拒绝访问错误。 IE不允许这样。 你将不得不要求用户输入类型的文件直接点击
更多详细的https://github.com/valums/file-uploader/issues/118#issuecomment-1387612
您可以尝试造型输入类型的文件,虽然http://www.quirksmode.org/dom/inputfile.html
我有类似的HTML和jQuery代码,并遇到了同样的问题(即“访问被拒绝。” JavaScript错误在Internet Explorer),我设法采取指针来解决这个 (伟大的)答案。
在您的实例:
在#icon_upl更改<button>
/ <input>
到<label>
,并通过设置使用的标签的辅助功能for
它的属性指向你的<input name="icon" type="file">
元素。
这将有效地使你的click()
事件处理程序冗余。 但是,单击<label>
在Firefox似乎没有触发文件<input>
对话框,所以你需要执行浏览器测试,并仍然有click()
事件处理程序,如果浏览器,基于Mozilla的。
为了为它工作,你需要确保你的文件<input>
不是通过设置它的位置是绝对的,移动它关闭屏幕隐藏。
我已经找到了其他的方式来做到这一点...我已经做试验,我发现它后2或3点击提交按钮的工作。
我有尝试一些解决方案,但发现这个由我自己。 这仅仅是针对IE。
注意:我不使用jQuery的提交方法,因为它们处理错误。
function Submit() {
try {
$('#FormName')[0].submit();
} catch (e) {
setTimeout(function () { Submit(); }, 50);
}
}
PS。 对不起,我的英语不好,这不是我的第一语言。
您可以直接事件触发的隐藏输入字段,因为你不能抓住它。 它可以与它结合事件,并通过另一个触发它。
例如:
// binding event to hidden field
$('input[name=icon]:hidden').on('click', function() {
alert('Hidden triggered');
});
// some button/ or else
// some_target is any valid selector you can use
$('some_target').on('click', function() {
$('input[name=icon]:hidden').click(); // triggering click on hidden field will alert 'Hidden triggered'
});
注:但它不是从您的文章清楚,如果你已经是这样还是不行。