更新:
经评论提醒,我才发现腾讯的 404 公益页面的数据源和页面样式已经有所更新。对于我们希望使其支持 HTTPS 的使用者而言,要做的也再不仅仅是简单的替换。
替换 URL
除了需要把原来的 qzonestyle.gtimg.cn/qzone_v6/lostchild
替换为 qzone.qq.com/gy/404
外,还需要将 page.js
中的众多 HTTP 开头的 URL 修改为 HTTPS。
简单的替换之后,我们会发现从 data.js 中获取的图片地址仍然是一个 HTTP 链接,此时需要修改用来格式化数据的 resolveData(d)
函数,在 for 循环中添加:
1
|
d.data[i].child_pic = d.data[i].child_pic.replace(/^http/, "https");
|
设置返回按钮
此外,我们可以在官网的说明页面中看到公益 404 更新之后提供了例如「返回首页」这样的实用功能,分析一下 page.js 的代码,不难发现其实现方法是遍历了所有 script 标签然后获取指定标签上的指定属性值,因此我们只要将 homePageUrl
和 homePageName
属性添加到我们自己指定的 data.js 的 script 标签(原代码中指定的是 search_children.js 的 script 标签)上即可。
问题
在 page.js
的原代码中,我看到了一个访问 http://boss.qzone.qq.com/fcg-bin/fcg_zone_info
的请求,获取的数据似乎是访问者的某些信息,目前未发现这些数据对 404 页面有何影响,另一方面该网站也不支持 HTTPS 访问,因此本文选择将这个请求注释掉。