1

フォームのファイル入力を div に置き換える jquery プラグインを使用しているため、div をクリックするとファイル ブラウザがポップアップします。ファイルを選択すると、フォームが自動的に送信され、結果が非​​表示の iframe に表示されます。このすべての背後にあるアイデアは、「クリックしてアップロード」という画像を表示するだけで、ワンクリックでファイル ブラウザが表示され、ファイルを選択すると舞台裏でアップロードされるということです。

とにかく、ファイルの送信時に php で問題が発生していることはわかっていますが、結果が非​​表示の iframe に読み込まれるため、エラーの内容を確認できません!

したがって、明らかに iframe から隠しスタイルを削除しますが、問題は、プラグインがプラグインの JavaScript に display:hidden を追加することです。します:

var iframe = $(
        '<iframe '+
            'id="iframe'+id+'" '+
            'name="iframe'+id+'"'+
        '></iframe>'
    ).css({
        display: 'none'
    });

ただし、次を削除すると:

.css({
        display: 'none'
    });

少し、「クリックしてアップロード」で画像をクリックしても、ファイルブラウザが表示されなくなり、全体が壊れているようです。

プラグインの JavaScript は長くはありませんが、ここに投稿するには長すぎるかもしれませんが、ここで見ることができます: http://liquidlizard.net/jquery.ocupload.js

その css() 関数だけを削除すると、全体が機能しなくなるのはなぜですか? 非表示の iframe の内容を表示する別の方法はありますか?

編集 コメントで提案されているjsfiddleは次のとおりです。http://jsfiddle.net/VF6Qb/ .css({display:'none'}); を削除すると、35 行目から始まる JavaScript で div をクリックしても、ファイル ブラウザ ダイアログ ボックスが開かなくなります。

4

1 に答える 1

0

を削除するdisplay:none;と、<iframe>何らかの形でファイル入力とクリックされた div が重なるため、ファイル ブラウザーがトリガーされません。iframe と submit-form の DOM 位置を交換したこのフィドルをテストすると、出来上がりです。動作します。

ただし、iframe 内のエラー ドキュメントを調べるだけであれば、iframe を表示するのではなく、FireBug のnet panelでそのソース コード (および HTTP ヘッダー) を調べるだけです。

于 2013-04-13T14:31:38.323 に答える