4

非表示の iframe を使用してファイルをアップロードしようとしていますが、スクリプトは IE(9) を除くすべてのブラウザーで実行されます。

  • ユーザーがリンクをクリックする
  • リンクはファイル入力をトリガーして開く
  • ファイル入力の変更によりフォーム送信がトリガーされる
  • フォームが iframe に送信される

IE9 開発者ツールは、次のエラー メッセージを返します。

SCRIPT5: Access is denied.
jquery-latest.js, line 2977 character 6

辺りを見回すと、jQuerychange()イベントと並行して発生するエラーのようです。それは簡単な解決策であるに違いないことはかなり確かです...助けていただければ、どうもありがとうございます!

HTML

<form class="hidden" action="index.php?upload" method="POST" id="myForm" enctype="multipart/form-data" target="hidden_iframe">
    <input type="file" name="userfile" id="userFile">
    <input type="submit">
</form>

<iframe id="hidden_iframe" class="hidden" name="hidden_iframe" src="inc/temp.html"></iframe>

Javascript

$('#fake').on("click",function(e){
    e.preventDefault();
    $('#userFile').click();
    return false;
});
$('#real').on("change",function(e){
    e.preventDefault();
    $("#myForm").submit();
});
4

2 に答える 2

1

これはIEのセキュリティ設定です。[設定] -> [インターネット オプション] -> [セキュリティ] -> [カスタム レベル] に移動し、[その他] の下のセキュリティ設定を変更して、[ドメイン間のデータ ソースへのアクセス] を [有効] に設定します。

編集:

私はちょうど問題が何であるかを見ました。ファイルのアップロードをトリガーしていますが、それを行うことは許可されていません。ユーザーがファイルセレクターボタンを手動でクリックできるようにする必要があります。

于 2012-11-12T12:08:48.023 に答える
0

たぶん、代替ソリューションを完全に検討する必要がありますか?

非表示の iframe を介してアップロードすることは、現在これを行うための最良の方法ではありません。

代わりに、この素​​晴らしいライブラリをご覧ください: http://www.plupload.com/

于 2012-11-12T12:18:56.023 に答える