pexels-trace-hudson-2724664.jpg

确实,JavaScript 就是世界上最好的语言(bushi)。以及就现况而言,这个脚本的写法还显得非常稚嫩,也还没有完全形成代码风格(是的,一个TAB都没有啊!);写脚本的过程中换了实现方法,产生了很多代码冗余;一般先按思路去写,可能会调用最为简单的运算方式(加减乘除),待进一步了解这种语言后,例如学到了新的方法(嵌套函数、递归、回调等等等),之前写的代码就有了进一步优化的可能。whatever,新手就是这样,多写写就好了。

I. 涉及JavaScript 标准内置对象及Web API 接口

1.Date
2.window.setInterval
3.setAttribute;
4.innerHTML;
5.function;
6.switch;
7.search;
8.typeof;
9.parseInt;取整
10.%;取余
11.document.cookie;
via MDN

II. JavaScript 实现

// 脚本加载时即定义一个过去的时间 then
// 即过去的这个时间是一个固定的值

var then = new Date()

// 一个循环函数
// 循环获取当前时间并与过去相减

function now(x) {
    var now = new Date();
    var convert = parseInt((now - x) / 1000); // 计算时间间隔
    var minutes = parseInt(convert / 60); // 计算累计多少分钟
    var seconds = convert % 60; // 对秒数求余
    var currentTime = "已在本页面停留" + minutes + "分钟" + seconds + "秒" // 返回
    return currentTime;
}

setInterval(function () {
    var currentTime = now(then); // 调用
    console.log(currentTime); // 控制台显示 
    //var xr = document.getElementById('gray_adxd'); // 获取id为gray_adxd的按钮
    //xr.innerHTML = currentTime; // 将上一个函数得到的 currentTime 信息替换按钮当前文本
}, 1000)

console.png

谷歌浏览器开发者工具的使用;上述脚本大家可以在 Chrome - 开发者工具 -> Source -> Snippet 下运行;

III. 完整脚本

本脚本实现的一些功能:

1.显示用户在当前页面的停留时间;

2.一共设置两个按钮;默认情况下,页面上的图片元素会随时间而在灰度和全彩之间变化(每次进入新页面,则改变当前页面图片元素的样式;),你可以点击开启全彩模式,或开启灰度模式,当你点击按钮时,脚本会为页面设置 Cookie,名称为 Color_Model,如点击开启全彩,则其值将被设定为 True,反之则为 False,恢复默认则会清除 Cookie。Cookie的存在可以保证在下次点开页面时还是选定的颜色模式,且有过期时间;

3.实现在任何色彩模式下,点击博客内部分NSFW文章时,页面元素会自动变灰以及模糊;

4.想要的功能可以一直堆,只要思路(if\或且非\循环计数)上可行,一般都有可以实现的(JavaScript)方法;

源码

最后修改:2022 年 08 月 23 日 11 : 39 AM