我想将每个图标打开的次数分别存储在油猴里面,建了一个数组分别存放图标的名称、图片、链接、弹出的信息,弹出的信息是一个函数,点击图标时执行打开链接和统计次数
我需要在函数里面引用当前的图标的名称,如何通过JavaScript实现呢?或者是否有其他的办法?
在这个脚本基础上改的划词脚本
var iconArray = [
{
name: 'Google',
image: 'https://i.ibb.co/R9HMTyR/1-5.png',
host: ['www.google.com'],
popup: function (text, name) {
open('https://www.google.com/s?wd=' + encodeURIComponent(text), name);
console.log(name);
}
},
{
name: 'Bing',
image: 'https://i.ibb.co/R9HMTyR/1-5.png',
host: ['www.bing.com'],
popup: function (text, name) {
open('https://www.bing.com/s?wd=' + encodeURIComponent(text), name);
console.log(name);
}
},
]
function open(url, a) {
try {
if(GM_openInTab(url, { loadInBackground: true, insert: true, setParent :true })){
if(GM_getValue(a).times){
GM_setValue(a, {
'times': GM_getValue(a).times + 1
});
}else{
GM_setValue(a, {
'times': 1
});
}
console.log('times-'+GM_getValue(a).times);
} else{
}
} catch (error) {
return GM_openInTab(url, { loadInBackground: true, insert: true, setParent :true });
}
}
我想在油猴里面这样存放数据,打开Google 1次,Bing 4次
{
"Google": {
"times": "1",
},
"Bing": {
"times": "4",
},
}
###通过调用popup函数的时候传入name解决啦
###我觉得你一个iconArray把元素对象抽象出来封装成功一个类来共享pop方法,这样开发业务更加轻便快捷,简单示例。
class Icon {
constructor(name, text) {
this.name = name
this.text = text
}
popup() {
open('https://www.bing.com/s?wd=' + encodeURIComponent(this.text), this.name);
console.log(this.name)
}
}
const iconArray = [ new Icon('Google', 'xxxx'), new Icon('Bing', 'xxxx') ]
// 后期调用
iconArray[0].popup()