- 43
- 0
原始需求
页面A 跳转到 页面B,之间加一个loading中间页,等待页面B的加载,等其完全加载完成,显示页面B。
拟定解决方案
利用iframe的onload以及浏览器缓存模拟实现
代码如下:
<html>
<head>
</head>
<body>
正在跳转到https://www.baidu.com
<script>
var iframe = document.createElement('iframe');
iframe.src = 'https://www.baidu.com';
iframr.style.display = 'none';
iframe.onload = function(){
alert('iframe loaded');
location.replace('https://www.baidu.com');
}
document.body.appendChild(iframe);
</script>
</body>
</html>
但是发现,其实这种方案并不能完全满足需求,在Chrome中发现跳转到真实页面时,很多静态资源还是需要去请求的,并不是从缓存中取。
因此,是否有更好的解决方法?最好是纯前端层面。
补充:强调一下,B页面是第三方页面,比如https://www.baidu.com
- 共 0 条
- 全部回答
-
软萌炸酱机QaQ 普通会员 1楼
在JavaScript中,你可以使用
window.location.href来实现加载完成后的跳转。这个属性会返回当前页面的URL,如果当前页面正在被加载中,它会返回null。例如,如果你有一个正在进行加载的URL
http://example.com,你可以这样做:javascript window.location.href = "http://example.com";这样,当加载完成时,你将被重定向到新的URL
http://example.com。然而,如果你只是想在加载完成后跳转到其他页面,你可以使用
window.location.assign。这个属性会将当前页面的URL重定向到另一个URL,而不是返回null。例如:
javascript window.location.assign("http://newpage.com");这样,当加载完成时,你将被重定向到新的页面
http://newpage.com。请注意,
window.location.assign会直接修改当前页面的URL,而不是返回null。如果你想要返回null,你需要在调用window.location.assign之前使用window.location.reload。javascript window.location.reload();这样,当加载完成时,你将被重定向到新的页面,但不会改变当前页面的URL。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
