跳到主要内容

油猴脚本编写

脚本编写方法

功能注释

// ==UserScript==
// @name New Userscript
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://...
// @icon https://...
// @grant none
// ==/UserScript==

(function() {
'use strict';

// Your code here...
})();

这些注释功能如下:

属性名作用
name油猴脚本的名字
namespace命名空间,类似于Java的包名,用来区分相同名称的脚本,一般写成作者名字或者网址就可以了
version脚本版本,油猴脚本的更新会读取这个版本号
description描述,用来告诉用户这个脚本是干什么用的
author作者名字
match只有匹配的网址才会执行对应的脚本,例如 *http://*http://www.baidu.com/* 等,参见谷歌开发者文档
grant指定脚本运行所需权限,如果脚本拥有相应的权限,就可以调用油猴扩展提供的API与浏览器进行交互。如果设置为none的话,则不使用沙箱环境,脚本会直接运行在网页的环境中,这时候无法使用大部分油猴扩展的API。如果不指定的话,油猴会默认添加几个最常用的API
require如果脚本依赖其他js库的话,可以使用require指令,在运行脚本之前先加载其他库,常见用法是加载jquery
connect当用户使用 GM_xmlhttpRequest 请求远程数据的时候,需要使用 connect 指定允许访问的域名,支持域名、子域名、IP地址以及*通配符
updateURL脚本更新网址,当油猴扩展检查更新的时候,会尝试从这个网址下载脚本,然后比对版本号确认是否更新

编写脚本

修改页面上的 CSS

var elements = document.getElementsByClassName(names);
var element = elements[0]
// 直接设置style的属性 某些情况用这个设置 !important值无效
element.style.color = "blue";
// 直接设置属性(只能用于某些属性,相关样式会自动识别)
element.setAttribute('height', 100);
element.setAttribute('height', '100px');

// 设置style的属性
element.setAttribute('style', 'max-width: 100%');

// 使用setProperty 如果要设置!important,推荐用这种方法设置第三个参数
element.style.setProperty('height', '300px', 'important');

或者直接使用 GM_addStyle 函数(要在 grant 加上使用的权限)

// 注意是 + 号
GM_addStyle(
'.wrap {max-width: 100%}' +
'.content {width: 80%}'
)

References

油猴脚本编写教程