是否可以使用jQuery创建<iframe>
元素并在不指定src
属性的情况下向其添加html内容?
问题是我需要创建一个iframe
并且我已经有了它的内容(我把它作为AJAX响应)。不幸的是,我无法指定我从src
属性获得响应的URL。我想做点什么:
$('<iframe id="someId"/>').append(response).appendTo("#someDiv");
答案 0 :(得分:34)
试试这个:
$('<iframe id="someId"/>').appendTo('#someDiv')
.contents().find('body').append(response);
答案 1 :(得分:2)
为什么要使用iframe呢?把它全部放在另一个容器里。除了可以从src属性加载页面之外,我无法想到iframe的任何优势。
我想如果您需要iframe用于其他目的,比如您在页面中加载但是想要用ajax响应替换它,则可以使用jQuery替换div的iframe并根据需要再次返回。
另一种可能性是,不是ajax,而是修改你的ajax php脚本,在iframe中输出你想要的整个页面。然后使用jQuery通过新参数更改iframe中请求页面的地址,以显示更新的内容。
答案 2 :(得分:0)
接受的答案对我不起作用,但是以下解决方案有效:
$('<iframe>', {
id: 'someId',
// other options like
frameborder: 0,
scrolling: 'no'
}).appendTo('#someDiv').on('load', function () {
$(this).contents().find('body').append(response);
});