我正在用基本的 HTML 填充一个空的 iframe,使用$iframe.contents().find('body').html(contentBody);
See: http://jsfiddle.net/UjT2b/2/
这在 Chrome 上效果很好。在 Firefox 上,我可以非常简单地看到里面的内容,但随后它突然消失了。当我用Firebug在这一行设置断点,然后继续运行时,内容保留在里面。但如果我之后在该行设置断点,它就会消失。
有关如何解决此问题的任何线索吗?
我在尝试填充动态创建的 iframe 时遇到了类似的问题。使用 iframe onload 事件解决了我的情况。正如所见,onload 解决方案不适用于 FF 以外的其他浏览器,因此保留了标准方式。
/**
* Fills an iframe using data stored within textarea. Useful for creating email
* template previews
*
* @param {String} inputSelector
* @param {String} outputElemClasses
* @return void
*/
function displayEmail(inputSelector, outputElemClasses)
{
$(inputSelector).each(function(i) {
var templateData = $(this).text();
var $iframe = $('<iframe></iframe>');
$iframe.addClass(outputElemClasses);
$iframe.insertAfter(this);
// non-firefox
updateIframe($iframe, templateData);
// firefox
$iframe.load(function(e){
updateIframe($iframe, templateData);
})
})
}
/**
* Fills in target iframe using supplied data
*
* @param {Object} $iframe
* @param {String} data
* @return void
*/
function updateIframe($iframe, data)
{
$iframe.contents().find('html').html(data);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)