分享书签栏的脚本

跳转到脚本列表🚀 什么是书签栏的脚本? 用过油猴脚本自然不会对书签栏脚本感到陌生,与油猴不同的是,书签栏脚本的触发方式是点击书签,而不会自动触发。以下是演示GIF: 使用方式 以Chrome浏览器为例,第一步:右键书签栏,选择添加网页 第二步:在名称处填写脚本名称,网址处填写脚本,最后点击保存即可! 脚本分享 1.页面自动刷新 功能: 点击之后输入秒数t(未作限制,请输入数字),页面会自动进行 t 秒一次的刷新,无限循环;如果需要停止,再次单击,点击取消或者输入0即可刷新一次自动取消。 javascript: var t=prompt("Time(s)="); var current = location.href; if (t) {setTimeout('reload()', 1000 * t); function reload() { setTimeout('reload()', 1000 * t); var fr4me = '<frameset cols=\'*\'>\n<frame src=\'' + current + '\' />'; fr4me += '</frameset>'; with (document) { write(fr4me); void (close()); }; };}else{location.replace(current);}; 2. Video自动播放 功能:点击之后输入速度t即可实现视频倍速播放,点击取消或者输入0即可恢复1倍速播放。 javascript: var t=prompt("speed = "); if(t){document.getElementsByTagName("video")[0].playbackRate = t*1;}else{document.getElementsByTagName("video")[0].playbackRate = 1;};

Apr 5, 2022 · 1 min · Archai

浏览器本地存储

webStorage 存储内容大小一般支持5MB左右(不同浏览器可能还不一样)。 浏览器端通过Window.sessionStorage和Window.localStorage属性来实现本地存储机制。 相关API: xxxStorage.setItem('key','value'); 该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。 xxxStorage.getItem('key'); 该方法接受一个键名作为参数,返回键名对应的值。 xxxStorage.removeItem('key'); 该方法接受一个键名作为参数,并把该键名从存储中删除。 xxxStorage.clear(); 该方法会清空存储中的所有数据。 备注: SessionStorage存储的内容会随着浏览器窗口关闭而消失。 LocalStorage存储的内容,需要手动清除才会消失。 xxxStorage.getItem('key');如果key对应的value获取不到,那么getItem的返回值是null。 可以通过JSON.stringify()存储对象,通过JSON.parse()解析对象,JSON.parse(null)的结果仍然是null。

Mar 30, 2022 · 1 min · Archai

Javascript正则表达式

关于正则表达式的创建,就不做过多的赘述 ::: tip 由于不知名原因,span标签报错,因此全部替换为[sp] ::: 关于转义 1.字面量形式创建的RegExp 转义形式: \d, \., \s 等 let str='fintinger2592030861.com$323e' let reg=/\d+\.com/ str.match(reg);//2592030861.com 2.对象形式创建的RegExp 转义形式: \\d, \\., \\s等 let str = 'fintinger2592030861.com$323e' let reg = new RegExp('\\d+\\.com', 'g') str.match(reg)//2592030861.com 边界约束 利用^和$分别限制开头和结尾 let str = 'bdhw42556jbjkhb2592030861jrh4jbhkfehrbj43jk32kbbjhb' let reg = /\d{3,6}/ let reg2 = /^\d{3,6}$/ str.match(reg)//42556 str.match(reg2)//null 元字符 元字符 用法 \d & \D 表示数字和非数字 \s & \S 表示空白(空格,换行,Tab制表符等)和非空白 \w & \W 表示字母,数字,下划线和非… ....

Sep 20, 2020 · 2 min · Archai

Es6中的class类

class实质上是对js中继承的封装组合,用一种“语法糖”的形式实现原型链的继承 静态属性/方法 静态方法/属性是指,函数作为对象时,定义在其原型(__proto__)上的方法,而需要实例化继承的动态方法是定义在其原型对象(prototype) 中的,静态方法中的参数都是固定的,直接通过整个构造函数调用,实例化对象并不会继承;而动态方法中的参数会因为实例化对象的不同而产生改变,实例化对象默认是继承的。 function User(){} User.__proto__.show=function(){} console.dir(User) //这里的show()方法就属于静态方法 在class中,利用static定义静态属性/方法 class Admin{ static show(){}//__proto__中 show(){}//prototype中 } console.dir(Admin) 关于class一些注意点 class中声明的方法在prototype对象中,由于默认的属性特征设置,这些方法是不可遍历的! class Admin{ show(){} } console.log( Object.getOwnPropertyDescriptor( Admin.prototype,"show" )) //enumerable: false class中声明方法时,方法之间不用,隔开! class中默认开启严格模式 class中的属性保护 主要可以通过三种途径实现属性保护:Symbol,weakmap,私有属性 1.Symbol /*利用Symbol创建一个受保护的属性的集合对象,无法直接获取,只能通过自定义的get/set方法*/ const protects = Symbol('受保护的属性') class User { constructor(name) { this.name = name this[protects] = { host: 'https://www.fintinger.xyz', token: '5574f1b81bbe4e3847e7a83c0a84a442', password: '123456' } } set host(url) { if (!...

Sep 9, 2020 · 4 min · Archai

JavaScript中的继承与原型链分析

原型链自定义设置 原型链的设置可以通过Object.creative , __proto__, Object.setProperty三种方法 Object.creative () 说明: 该方法只能设置原型链,而不能获取 let a1 = {name: 'a1'} let b1 = Object.create(a1) b1.name = 'b1' console.log(b1); Object.creative()为创建对象的方法,第一个参数为其原型对象,第二个参数为其默认属性,这些属性默认是不可写,不可遍历,不可修改的 let b=Object.create(null,{ a:{value:'ohh', enumerable:true}, b:{value:'jqf'}, }) console.log(Object.getOwnPropertyDescriptors(b)); //a: {value: "ohh", writable: false, enumerable: true, configurable: false} //b: {value: "jqf", writable: false, enumerable: false, configurable: false} __proto__ 说明: 能设置,能获取,实质上是setter,getter let a2 = {name: 'a2'} let b2 = {name: 'b2'} a2.__proto__ = b2 console.log(a2); console.log(a2.__proto__);//{name: "b2"} 关于__proto__是setter,getter?...

Sep 4, 2020 · 2 min · Archai

关于JavaScript模块化

自定义一个模块引擎 要求: 能够让模块之间产生依赖关系 代码 let _module = (function () { let moduleList = {} function define(name, modules, action) { modules.map((n, i) => { //将传入的只含名称的模块数组 => 指定名称模块的返回结果 modules[i] = moduleList[n] }) moduleList[name] = action.apply(null, modules) // console.log(moduleList); } return {define} })(); //定义一个工具库,暴露给外界使用,输出 _module.define('tools', [], function () { return { max(arr) { return arr.sort((a, b) => b - a)[0]//获取最大值挺别致昂 }, min(arr) { return arr.sort((a, b) => b - a)[arr.length - 1]; } } }); //使用之前定义的工具库,引入 _module....

Sep 2, 2020 · 2 min · Archai