2

動的に生成された文字列から iframe に画像を表示する必要があります。iframe の ID はupload_target.

これは私が使用しているコードです

// assign esrc and upath
$.ajax 
({  type: "POST", 
    url: "editImage.php", 
    data:  {esrc: editsource, upath: upath } ,  
    success: function(esource) 
    {   //load into iframe 
        s = esource;
        console.log(s);
        $('#upload_target').contents().find('body').html(s);
    } 
});

ファイル editImage.php は、正しいファイル名を返すだけです。コンソールに正しいファイル名が表示されるので、そこに問題がないことがわかります。しかし、iframe には何も起こりません。これまでと同じように空白のままです。同じ iframe に別のイベント、つまりtargetこの iframe であるフォームの送信を入力することができました。しかし、なぜここで機能しないのですか?

も試し$('#upload_target').attr('src',s)ましたが、406 エラーが発生しました。

4

2 に答える 2

3

試す

...find("body").append($("<img/>").attr("src", s).attr("title", "sometitle"));

このコードはデバッグしませんでしたが、動作するはずです。

編集

このコードは私にとってはうまく機能します

<iframe id="upload_target"><html><body></body></html></iframe>

<script type="text/javascript">
    $(function () {
        $('#upload_target').contents().find('body').append($("<img/>").attr("src", "http://www.bing.com/az/hprichbg/rb/NYBirds_ROW10420117938_1366x768.jpg").attr("title", "sometitle"));
    });
</script>
于 2013-01-15T15:53:48.707 に答える
0

結局、私はクレイジーな修正をハックしました。合理的かどうかはわかりませんが、機能します。ajax を使用する代わりに、渡す必要のある値を保持する非表示の入力を含むフォームを作成し、editImage.phpそのフォームを送信しました。その後、iframeは画像を正常にロードしました。

$('#imgdialog').append("<form id='imageeditform' method='post' action='editImage.php' target='upload_target'><input type='hidden' name='esrc' value='"+editsource+"' /><input type='hidden' name='upath' value='"+$('#upath').val()+"' /></form>");
$('#imageeditform').submit();
于 2013-01-15T16:12:40.450 に答える