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 回答