Classes
- exports.Toolkit
引入方法
Members
(static) version
当前库的版本号
(static) is_debug
当前是否处于 debug 状态。
Debug 模式开启方法: 手动为此脚本设置一个数据: is_debug: 1
(在脚本设置页面中)。值可以任意,因为会当作字符串处理,所以不为空即为真。
注意: 这需要 GM_getValue
API 的支持
Methods
info(by, …args)
日志输出
用 console.info
方法输出信息。如多条内容,则以折叠组的形式输出。主要为了便于 debug。
Example
DMSTookit.info('Demo', 'Some thing want to print to console.') // 仅一项需输出内容
DMSTookit.info('Demo', 'Some thing want to print to console.', 'And more.') // 多项输出内容
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
by |
string | 由信息来源标识 |
|
args |
any |
<repeatable> |
输出内容,任意多个参数 |
dblog(by, …args)
Debug 输出,仅开发时输出
用 .info
方法输出。但仅在 .is_debug
为真时输出。这样在发布版本时可不删除这些调试内容。参数同 Toolkit#info
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
by |
string | 由信息来源标识 |
|
args |
any |
<repeatable> |
输出内容,任意多个参数 |
badge(leftText, rightText, endText, options)
徽章输出
类似这种效果 , 但并不一致。具体可在引用此库,并正确初始化后看控制台输出。其实除了好看也没什么特别的用途。
Example
DMSTookit.badge(
'DMS UserScripts Toolkit',
DMSTookit.version,
'https://greasyfork.org/zh-CN/scripts/408776'
)
Parameters:
Name | Type | Default | Description |
---|---|---|---|
leftText |
string | 徽章左侧文字 |
|
rightText |
string | 徽章右侧文字 |
|
endText |
string | 徽章后描述 |
|
options |
object |
{}
|
徽章配置项
|
getData(type, dataName, defaultValue)
获取存储中的数据
基础方法,当接口不可用时会直接抛出错误,不建议直接使用。提供如下语法糖:
getGMData
将type
指定为GM
,然后省略此参数getLocalData
将type
指定为local
,然后省略此参数getSessionData
将type
指定为session
,然后省略此参数
Parameters:
Name | Type | Default | Description |
---|---|---|---|
type |
string | 存储类型,可用值如下:
|
|
dataName |
string | 数据名称 |
|
defaultValue |
any |
false
|
默认值,可省略 |
setData(type, dataName, value)
设置存储中的数据
基础方法,当接口不可用时会直接抛出错误,不建议直接使用。提供如下语法糖:
setGMData
将type
指定为GM
,然后省略此参数setLocalData
将type
指定为local
,然后省略此参数setSessionData
将type
指定为session
,然后省略此参数
Parameters:
Name | Type | Description |
---|---|---|
type |
string | 存储类型,可用值如下:
|
dataName |
string | 数据名称 |
value |
any | 要写入的值,如不存在则删除该数据 |
removeData(type, dataName)
移除存储中的数据
基础方法,当接口不可用时会直接抛出错误,不建议直接使用。提供如下语法糖:
removeGMData
将type
指定为GM
,然后省略此参数removeLocalData
将type
指定为local
,然后省略此参数removeSessionData
将type
指定为session
,然后省略此参数
Parameters:
Name | Type | Description |
---|---|---|
type |
string | 存储类型,可用值如下:
|
dataName |
string | 数据名称 |
listData(type, dataName)
移除存储中的数据
基础方法,当接口不可用时会直接抛出错误,不建议直接使用。提供如下语法糖:
removeGMData
将type
指定为GM
,然后省略此参数removeLocalData
将type
指定为local
,然后省略此参数removeSessionData
将type
指定为session
,然后省略此参数
Parameters:
Name | Type | Description |
---|---|---|
type |
string | 存储类型,可用值如下:
|
dataName |
string | 数据名称 |
proxyData(type, dataName, defaultValue)
代理存储中的数据对象
基础方法,不建议直接使用。仅用 new Proxy()
方法简单代理了数据的 get
和 set
,可以满足简单的数据操作需求,复杂情况请自行书写代理。提供如下语法糖:
proxyGMData
将type
指定为GM
,然后省略此参数proxyLocalData
将type
指定为local
,然后省略此参数proxySessionData
将type
指定为session
,然后省略此参数proxyDataAuto
脚本数据存储 API 可用的话type
指定为GM
,否则为local
即自动选择type
,然后省略此参数
Parameters:
Name | Type | Default | Description |
---|---|---|---|
type |
string | 存储类型,可用值如下:
|
|
dataName |
string | 数据名称 |
|
defaultValue |
any |
{}
|
默认值,可省略 |
proxyKey(type, dataName, defaultValue) → {function}
代理存储中的数据
基础方法,不建议直接使用。针对存储的单个数据进行简单代理。提供如下语法糖:
proxyGMKey
将type
指定为GM
,然后省略此参数proxyLocalKey
将type
指定为local
,然后省略此参数proxySessionKey
将type
指定为session
,然后省略此参数proxyKeyAuto
脚本数据存储 API 可用的话type
指定为GM
,否则为local
即自动选择type
,然后省略此参数
Parameters:
Name | Type | Default | Description |
---|---|---|---|
type |
string | 存储类型,可用值如下:
|
|
dataName |
string | 数据名称 |
|
defaultValue |
any |
false
|
默认值,可省略 |
Returns:
返回一个方法,无参数运行则获取对应存储的值,有参数运行则将参数值写入存储
- Type
- function
menuLink(name, url)
注册一个链接菜单
需要如下 API:
GM_registerMenuCommand
【必须】否则无法注册脚本菜单GM_openInTab
【可选】可以更稳定的在新窗口打开链接
Example
DMSTookit.menuLink('更多脚本', 'https://script.izyx.xyz/')
Parameters:
Name | Type | Description |
---|---|---|
name |
string | 菜单的名称 |
url |
url | 链接地址,含协议部分( |
menuToggleBasic(getter, setter, onName, offName, reload, callback)
注册一个切换菜单
因为不同管理器下菜单的反注册方式不太一样,所以最稳妥的方法是切换后刷新页面。如果不刷新页面,会用两种方法尝试反注册菜单。需要如下 API:
GM_registerMenuCommand
【必须】否则无法注册脚本菜单GM_unregisterMenuCommand
【可选】无刷新切换时用来反注册菜单 提供如下语法糖:menuToggle
菜单标记位于某个数据对象的属性上,用此方法可略显简便,详细参数在后面menuDebug
注册一个 debug 状态的切换菜单,此方法无参数
Parameters:
Name | Type | Default | Description |
---|---|---|---|
getter |
function | 获取菜单状态标记 |
|
setter |
function | 设置菜单状态标记 |
|
onName |
string | 启用状态菜单文字 |
|
offName |
string | 禁用状态菜单文字 |
|
reload |
boolean |
true
|
是否需要刷新页面,默认为是。当为否时会尝试两种方法反注册菜单,但并不推荐。 |
callback |
function | 回调函数,当 |
menuToggle(optionsObject, optionsProperty, onName, offName, reload, callback)
注册一个切换菜单,菜单标记位于储存数据对象的某个属性上
Parameters:
Name | Type | Default | Description |
---|---|---|---|
optionsObject |
object | 选项数据对象,推荐使用上面 |
|
optionsProperty |
string | 选项对象中对应的属性名称 |
|
onName |
string | 启用状态菜单文字 |
|
offName |
string | 禁用状态菜单文字 |
|
reload |
boolean |
true
|
是否需要刷新页面,默认为是。当为否时会尝试两种方法反注册菜单,但并不推荐。 |
callback |
function | 回调函数,当 |
pageObserverInit(targetEl, callback, obOptionsopt) → {object}
创建页面元素变化监控
用来实时跟踪页面元素变化,及时进行相应修改,但可能和页面程序产生冲突,在执行回调函数期间可能错过某些变化。仅作为对页面的元素的粗略追踪方法。
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
targetEl |
object | 要监控的元素对象 |
||
callback |
function | 元素发生变化时执行的函数,应该为一个异步函数,会在执行此函数之间停止监控,等待此函数执行结束后再次启动监控 |
||
obOptions |
object |
<optional> |
{}
|
监控设置项,参见: https://developer.mozilla.org/zh-CN/docs/Web/API/MutationObserverInit |
Returns:
一个对象,提供两个方法,start
开始此监控,stop
停止此监控
- Type
- object
recordsPreProcessing(records)
对 MutationRecord
对象的预处理
根据变化类型将受到影响的元素放入数组并标记变化类型,方便后期直接通过对数组的遍历处理。
Parameters:
Name | Type | Description |
---|---|---|
records |
* |
|
addStyle(cssString)
为页面添加样式
当没有 GM_addStyle
接口或执行错误时,使用替代方法
Parameters:
Name | Type | Description |
---|---|---|
cssString |
string | 要注入页面的 CSS 字符串 |