0

難しい問題があります。すでにサイトでここで調査し、提案された多くのソリューションを試しましたが、Internet Explorer 8 (マシンにインストールしたバージョン) では何も機能しませんでした。Chrome と Firefox で正常に動作します。ユーザーが10枚の写真をアップロードする必要があるWebサイトがあります。アップロードを行い、ページの div に表示する必要があります。フラッシュやページのリロードは必要ありません。私は set form target attribute の手法を使用して、iframe で投稿を行い、iframe が投稿を行い、リロードすると、アップロードされた画像を含む img タグになります (サーバー側スクリプトで行います - PHP) Internet Explorer で iframe の内容が変わらず、投稿が行われません。

誰か奇跡が私を助けることができますか?ここフォーラムで多くのことを調査しましたが、これらの問題のほとんどは javascript によって動的に生成された iframe に関するものですが、私の場合、iframe は既に html に含まれています

これが私のコードです:

//javascript

$(document).ready(function() {          
//this part works in every browser, is jut´s to triger click in input type file    
   $(".div_input_file").click(function(){               
        var rel = $(this).attr("rel");              
        $(".arq"+rel).trigger('click');             
    })
}); 

function loadPicture(number)
{               
    $(".remover_produto").remove();
    //just a gif animation until ends animation
    $("#image_load_"+number).attr("src","images/loading.gif");
    $("#image_load_"+number).css("width","172px");      
    $("#image_load_"+number).css("height","176px");     
    //when iframe load after post
    $("#upload_target_"+number).load(function() {
        //get image that was loaded in iframe after post
            var image = $("#upload_target_"+number).contents().find("img").attr("src");
        $("#div_input_file_"+number).html("<img src='"+image+"' alt=''  class='img_uploaded' />");
        $("#div_input_file_"+number).parent().append('<a class="remover_produto" rel="remover_'+number+'"');           
    });   

}   

    //html
    <iframe id="upload_target_1" class="upload_target" name="upload_target_1" src="upload.php"></iframe>
    <div id="div_input_file_1" class="div_input_file" rel="1">
        <img src="images/criar_anuncio/gallery_pic05.png" alt="" id="image_load_1" />
    </div>      
    <form action="/upload.php" id="form_upload_1" enctype="multipart/form-data" method="post" target="upload_target_1" onsubmit="loadPicture(1)">   
        <input name="arquivo" type="file" size="30" class="arquivo arq1" onchange="$('#form_upload_1').submit();"/>
        <input type="hidden" name="num_imagem" value="1" /> 
    </form> 
4

1 に答える 1

0

最後に問題が見つかりました。これらの行が問題の原因でした:

$(document).ready(function() {          
//this part works in every browser, is jut´s to triger click in input type file    
   $(".div_input_file").click(function(){               
        var rel = $(this).attr("rel");              
        $(".arq"+rel).trigger('click');             
    })
});

入力タイプ ファイルのスタイルを設定するために、次の手法を使用しました。div をクリックすると、非表示の入力ファイル タイプがトリガーされます。

このアクションにより、Internet Explorer でバグが発生します。スタイルなしの通常の入力型ファイルを置いて、テストできるようにし、それがうまく機能することを証明できました

助けてくれたみんなに感謝

于 2012-06-21T17:27:20.360 に答える