Tumblr中的照片集作爲iFrames提供。如何檢查是否有一個相同的域,動態加載的iframe我無法控制100%加載?
我想通過jQuery來操作iframe,看看我想要的方式,我可以做到,但它並不總是完成它正在做的事情。
我認爲這是因爲頁面加載時有很多事情同時發生。我需要一種方法來檢查這個我無法控制的iFrame,在我做有趣的事情之前加載100%。
有關於此問題的其他問題中提出了各種技術,但我認爲他們不適合這種情況。這裏是從堆棧溢出問題"jQuery .ready in a dynamically inserted iframe"
function callIframe(url, callback) {
$(document.body).append('<IFRAME id="myId" ...>');
$('iframe#myId').attr('src', url);
$('iframe#myId').load(function()
{
callback(this);
});
}
一個榜樣,但這毫無意義,我無論如何對我來說,即使它得到打勾,並有100個upvotes。 在這個'答案'中,iframe被函數追加。這對我來說不是一個動態加載的iframe!
這是我用'笨'iframe加載檢查器的代碼。代碼有效,但只是有時。你可以看到它在這裏的行動http://syndex.me(後第三是photoset)
$(".post_relative").each(function() {
var post_relative = $(this);
var photoset = post_relative.find('.html_photoset');
if(photoset.length){
var myFrame = photoset.find("iframe");
myFrame.load(function(){
var newCover=myFrame.contents().find('.photoset').children(':first-child').children(':first-child').attr("href")+ '?'+(Math.random()*10000);
post_relative.append("<img src='"+ newCover +"' alt='Cover Page' />");
var psHeight = post_relative.find('img');
psHeight.load(function(){
if (psHeight.height()>heightRef){
psHeight.height(heightRef);
}
myFrame.hide();
})
})
}
});
所以現在的問題是:你如何執行基於100%負載和準備的iframe的腳本?
我不需要用IE7用戶費心。仔細闡述在這種情況下如何實現?這是一個相當抽象的答案!我會在此期間嘗試谷歌。 – RGBK
在iframe窗口中添加如下內容到body標籤:onload =「localStorage.setItem('frameload',window.location.href)」;然後在覈心窗口中編寫一些邏輯來使用localStorage.getItem(「frameload」)查找該項目; – austincheney
這是一個很好的答案。我已經搞亂了設置document.domain來達到這個目的,但是你的解決方案更清潔,更簡單。 – NolanDC