1 回答
TA贡献1817条经验 获得超6个赞
刚才测试已经成功解决 onload 延迟的问题了。感谢 @边城 提供的解决办法!!
这边贴出成功后的代码(由于实际解决代码中使用了依赖,这边使用纯 js 重写了一遍,未经测试,只提供各思路,给以后碰上该问题的朋友一个解决思路哈):
HTML:
<iframe id='ifr'></iframe>
JavaScript:
var iframe = document.getElementById('ifr');
// 获取 window 对象
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 对象
});
通过以上方式获取 iframe 的 contentWindow 对象,比起使用 onload 事件来速度快了不知多少,基本做到了零延迟.
添加回答
举报