内部に HTML ファイル アップロード コントロールを含む HTML フォーム ( upload.htm ) があります。
<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
<input id="uploader" name="uploadctrl" type="file"/>
</form>
上記のページには、次のような JavaScript メソッドも 1 つあります。
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();
Access is deniedというエラーが表示され、最初に表示した JavaScript 関数でデバッガーが停止します。両方のファイルは、Web プロジェクトの同じ場所にあります。彼らも同じドメイン名を持っています。なぜこのエラーが発生するのですか?
もちろん、以前はname
、HTML アップロード コントロールの属性を設定しなかった場合に、ページを投稿できました。しかし、HTML マークアップで name 属性を設定した後、この奇妙なエラーが発生します。なぜこれを最初に取得しなかったのですか?
スクリプトが IE8 で iframe にアクセスしようとすると、この投稿を見てください --> 「アクセスが拒否されました」が、役に立ちませんでした。