1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
剛才測(cè)試已經(jīng)成功解決 onload 延遲的問(wèn)題了。感謝 @邊城 提供的解決辦法?。?/p>
這邊貼出成功后的代碼(由于實(shí)際解決代碼中使用了依賴,這邊使用純 js 重寫了一遍,未經(jīng)測(cè)試,只提供各思路,給以后碰上該問(wèn)題的朋友一個(gè)解決思路哈):
HTML:
<iframe id='ifr'></iframe>
JavaScript:
var iframe = document.getElementById('ifr');
// 獲取 window 對(duì)象
var getWindow = function(ifr , callback){
window.cancelRequestAnimationFrame(ifr._timer);
if (typeof ifr.contentWindow === 'null') {
ifr._timer = window.requestAnimationFrame(getWindow.bind(null , ifr , callback));
} else {
if (typeof callback === 'function') {
callback(ifr);
}
}
};
getWindow(iframe , function(ifr){
var win = ifr.contentWindow;
console.log(win); // 獲取到的 window 對(duì)象
});
通過(guò)以上方式獲取 iframe 的 contentWindow 對(duì)象,比起使用 onload 事件來(lái)速度快了不知多少,基本做到了零延遲.
添加回答
舉報(bào)