1

すべて、私はこの質問がすでにそこにあることを知っています: jquery file upload - IE done callback data.result issue

しかし、私は同じ問題を抱えており、解決方法がわかりません。次のような作業コードがいくつかありました (他の投稿の推奨事項に基づく):

if($.fn.wl_File) $.fn.wl_File.defaults = {
    forceIframeTransport: true,
    onDone: function (e, data) {
    var result = jQuery.parseJSON(data.result);
    var filename = result[0].name;
    }
}

IEを除くFirefox、Chromeなどでコールバック情報を完全に抽出します。ただし、IE から [object Object] が返されます。console.log(data.result)Chrome でa を実行すると、次の結果が返されます。

[{
"name": "1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"size": 35535,
"type": "image\/jpeg",
"url": "\/web\/upload\/1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"thumbnail_url": "\/web\/upload\/thumbnails\/1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"delete_url": "\/web\/upload.php?file=1_3266_671641333369_14800358_42187036_5237378_n.jpg",
"delete_type": "DELETE",
"upload_type": "video_montage",
"insert_id": "288"
}]

問題を解決する方法がわかりません。私のコードに基づいて、誰かが私を正しい方向に向けることができますか?

参考までに、私は次のテーマを使用しています: http://revaxarts-themes.com/?t=whitelabelこれは jquery アップロード プラグインを呼び出します。そのため、コードの上部が少し異なって見えますが、基本的にはプラグインコード。

この苛立たしい問題について、どんな助けも大歓迎です!

4

2 に答える 2

2

質問で言及した投稿から、これに対する解決策を見つけました。ただし、さまざまなブラウザーに対応するために、少し拡張する必要がありました。元の答えは IE からデータを取得する方法については正しかったのですが、その方法は他のブラウザーでは機能しませんでした。ブラウザーの種類を確認し、そこから先に進むには、if ステートメントを追加する必要がありました。このシナリオを処理するコードは次のようになります。

if($.browser.msie){
    var data_to_parse = $( 'pre', data.result ).text();
}else{
    var data_to_parse = data.result;
}
var result = jQuery.parseJSON(data_to_parse);
var filename = result[0].name;

IE と他のブラウザーの両方から得られる応答を操作できるようになりました。

于 2012-07-12T16:34:10.963 に答える
0

IEのconsole.logは、他のブラウザのように素晴らしいものではありません。オブジェクトObjectを出力するのが普通です。できることは、開発ツール(F12)を起動し、次の行にブレークポイントを追加することです。

 var result = jQuery.parseJSON(data.result);

デバッグ方法の詳細については 、IE8でJavaScript変数をダンプするにはどうすればよいですか?

また、読む価値があるので、firebug liteを使用 してください:IEでのjQueryロギング:オブジェクトを取得する方法は?

于 2012-07-12T14:56:46.377 に答える