我有一个HTML表单(upload.htm),其中包含一个HTML文件上传控件。
<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
<input id="uploader" name="uploadctrl" type="file"/>
</form>
上述页面中还有一个JavaScript方法,如下:
function performUpload(){
document.getElementById('frmupload').submit();
}
我在一个页面(uploadpage.htm)内部通过一个 iframe
调用它:
<iframe id="docframe" src="upload.htm" style="display:none"></iframe>
我试图从 uploadpage.htm 页面执行下面显示的语句:
var i = document.getElementById('docframe');
i.contentWindow.performUpload();
我遇到了一个错误,提示访问被拒绝,并且我的调试器在我展示的第一个JavaScript函数处停止运行。这两个文件位于Web项目中相同的位置。它们也具有相同的域名。那么为什么我会得到这个错误呢?
当然,在之前,我可以发布页面:当我没有为HTML上传控件设置name
属性时。但是在我在HTML标记中设置了名称属性之后,我遇到了这个奇怪的错误。为什么我第一次没有遇到这个问题呢?
查看了这篇帖子 -> "Access is denied" when script tries to access iframe in IE8,但并没有帮助。