为了账号安全,请及时绑定邮箱和手机立即绑定

很厉害的代码,不懂求大神解释……

很厉害的代码,不懂求大神解释……

zhangyudemuke 2016-03-15 14:08:18
<<!DOCTYPE html> <html> <head> <title>很有趣的12行代码哦……</title> <meta charset="utf-8"> </head> <body> <script type="text/javascript"> var total=""; for (var i = 0; i < 1000000; i++) { total = total + i.tostring(); history.pushState(0,0,total); } </script> </body> </html>其中的history.pushState(0,0,total);这一行代码不知道什么意思,请大神指教。
查看完整描述

2 回答

已采纳
?
qq___524

TA贡献171条经验 获得超74个赞

HTML5为history对象添加了两个新方法,history.pushState() 和 history.replaceState(),用来在浏览历史中添加和修改记录。所有主流浏览器都支持该方法(包括IE10)。
if (!!(window.history && history.pushState)){
// 支持History API
} else {
// 不支持
}

上面代码可以用来检查,当前浏览器是否支持History API。如果不支持的话,可以考虑使用Polyfill库History.js。
history.pushState方法接受三个参数,依次为:
state:一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数。如果不需要这个对象,此处可以填null。
title:新页面的标题,但是所有浏览器目前都忽略这个值,因此这里可以填null。
url:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。

查看完整回答
反对 回复 2016-03-16
?
我也有梦想啊

TA贡献3条经验 获得超0个赞

浏览器会崩溃吧感觉,history.pushState好像是添加历史记录的

查看完整回答
反对 回复 2016-03-17
  • 2 回答
  • 0 关注
  • 1968 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信