大家对浏览器的书签并不陌生,用文件夹去规范地处理书签,有利于我们快速地找到需要的东西。例如打开一个chrome的拓展程序页面,一些人会这么干:【右上角一排竖点】->【更多工具】->【扩展程序】,这种操作步骤既费时又麻烦。如果你将扩展程序的页面存为书签,放到你喜欢的位置,那下次你直接点击这个书签就行了。
这当然不足为奇。但实际上,书签还有进一步的利用,尤其是对开发者而言,这个用法作用更大。这便是:
可以把我们写的js代码,保存作为一个书签。当点击这个书签的时候,将在当前页面运行这段js代码。
js在书签中的写法模板一般可以直接这样写:
javascript: (function() {
//你的执行逻辑
})()
接下来,让我们执行一段最简单的js代码试试。
点击【右上角一排竖点】->【书签】->【书签管理器】->【右上角一排竖点】->【添加新书签】,将打开下面这个弹框:
我们将名称命名为测试书签,网址填入下面这段,也就是我们要执行的js代码:
javascript: alert('1');
保存书签。接下来随便到一个网页(例如百度首页),点击该书签便会执行js的逻辑。效果如下:
既然发现了书签可以执行js脚本这个功能,那我们可以做些什么呢?
举栗:
- 查看布局
假设我们在开发过程中想大概地看一下全局界面元素布局,像这样:
js代码如下:
javascript: (function() {
let color = () => Math.floor(Math.random()*255);
let list = document.body.getElementsByTagName('*');
for (let item of list) {
let rgb='rgb('+color()+','+color()+','+color()+')';
let { style } = item;
style.outline = style.outline
? ''
: '1px solid ' + rgb;
};
})()
- 编辑页面
js脚本如下:
javascript: (function() {
document.designMode = document.designMode === 'on' ? 'off': 'on'
})()
当然,也可以利用书签做一些有趣的事情。例如:
-
旋转页面
当你点击后,页面会旋转180°,再次点击时复原:
js代码如下:
javascript: (function() {
if (typeof rotateNum === 'undefined') {
rotateNum = 180;
} else {
rotateNum = rotateNum ? 0: 180;
}
document.body.style.cssText +="transition: all 1s; transform: rotate(" + rotateNum + "deg);";
})()
另外,书签脚本也可以应用于我们平时操作的东西:
-
下载百度文库
点击将跳转到文库下载页面:
js代码如下:
javascript: (function() { window.open(window.location.href.replace("baidu", "baiduvvv")); })()
-
百度网盘视频变速
平时找到百度网盘资源,人穷买不起会员,又嫌弃一倍速,怎么办?可以借助书签实现任意倍数播放:
js脚本如下:
javascript: (function() {
var number = prompt("请输入百度云盘播放倍数");
if (!isNaN(+number)) {
videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(number);
} else {
alert('输入非数字!')
}
})()
-
在线视频下载
此书签可以直接下载在线视频,主要是利用了硕鼠的解析支持,不过目前已经停止了对腾讯视频的解析支持,可能作用有限。
js代码:
javascript: (function() { window.open("http://www.flvcd.com/parse.php?format=&kw="+encodeURI(window.location.href)+"&sbt=%BF%AA%CA%BCGO%21"); })()