跳转到内容

Dog模块API

适用于有JavaScript基础的开发者,命名空间包含Dog.xx,GM.xx,GM_xx,API通用。

getValue

获取缓存,此缓存全局的,所有网站共用。

const val1 = Dog.getValue('key');
const val2 = Dog.getValue('key','defaultValue');

setValue

设置缓存,此缓存全局的,所有网站共用。

Dog.setValue('key','myVal');

deleteValue

删除缓存

Dog.deleteValue('key');

listValues

列出缓存,以k,v对象返回

const obj = Dog.listValues();

getResourceUrl

获取项目引用资源的链接,引用资源请参考项目编辑。

const url = Dog.getResourceUrl('my-img');

getResourceText

获取项目引用资源的文本内容,引用资源请参考项目编辑。

const text = Dog.getResourceText('my-res');

openInTab

打开新标签

Dog.openInTab('https://baidu.com');

notification

创建系统通知

Dog.notification(text: string, title?: string, image?: string);

registerMenuCommand

注册菜单,与GM有所区别,并不会真正注册浏览器右键菜单,但菜单列表将在脚本盒子扩展弹窗显示。

menus

declare function registerMenuCommand(caption: string, commandFunc: () => void): string
const id = registerMenuCommand('menu1',()=>{
console.log('menu1')
})

unregisterMenuCommand

注册菜单

Dog.unregisterMenuCommand(id);

setClipboard

设置文本到剪切板

Dog.setClipboard('text');

xmlhttpRequest

跨CSP网络请求,支持Promise

// 使用回调
Dog.xmlhttpRequest({
method:'POST',
data:{}, //数据参数:FormData,json,kv对象
headers:{},// kv对象
responseType, //返回类型 (string|arraybuff|blob)
url:'https://xx.com/api/xx',
onerror:(err)=>{
console.log(err)
},
onload:(response)=>{
/*
response 包含一下字段
{
readyState: 4,
responseText: '',
status: 200,
response: any,
statusText: 'error'
}
*/
console.log(res)
}
});
// Promise
Dog.xmlhttpRequest({
url:'https://xx.com/api/xx',
method:'GET',
}).then(res=>{
console.log(res)
})

addStyle

添加css样式

Dog.addStyle('body{color:red;}');

addElement

添加元素,包含脚本

Dog.addElement(tag: string, attributes: any):Element;
const script = Dog.addElement('script',{src:'https://xx.com/a.js'})

download

下载文件

Dog.download({url:'https://xx.com/a.png',filename:'a.png'});
Dog.download('https://xx.com/a.png','a.png')

openFile

打开文件选择器,返回文件对象或字符,此API脚本盒子独有*

Dog.openFile(text=false);

readFile

读取文件,返回arraybuffer|text|base64,此API脚本盒子独有

Dog.readFile(file: File, type?: string);

loadImage

加载图片,返回HTMLImageElement,此API脚本盒子独有

declare function loadImage(url: string): Promise<HTMLImageElement>
const img = await Dog.loadImage('xx.jpg');
Dog.loadImage('xx.jpg').then(img=>{
console.log(img)
})

registerTemplateFunction

为可视化模板注册响应事件,此API脚本盒子独有

declare function registerTemplateFunction(funcName: string, func: any);
Dog.registerTemplateFunction('onbtnclick',()=>{
console.log(123)
})

getTemplate

获取指定的可视化模板,并附加模板参数,此API脚本盒子独有

declare function getTemplate(name: string, data: any = {})
const html = Dog.getTemplate('myTpl',{data:'123'});
const div = document.querySelector('#my-div');
div.innerHTML = html;