我嘗試填充動態創建的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);
}
這是正確的小提琴嗎?我沒有看到任何與iframe有關的事情。 – 2012-04-01 19:55:23
對不起,我編輯了鏈接。 – 2012-04-01 20:00:03
好吧,我對Chrome,Safari和Firefox的結果也一樣。我在Mac上使用Firefox 11。它可能是別的嗎? – 2012-04-01 20:02:39