如何在数组内一个元素引用另一个元素?

发布于 2022-09-12 22:17:30 字数 1814 浏览 25 评论 0

我想将每个图标打开的次数分别存储在油猴里面,建了一个数组分别存放图标的名称、图片、链接、弹出的信息,弹出的信息是一个函数,点击图标时执行打开链接和统计次数

我需要在函数里面引用当前的图标的名称,如何通过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",
    },
      
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

手心的温暖 2022-09-19 22:17:30

通过调用popup函数的时候传入name解决啦

夜灵血窟げ 2022-09-19 22:17:30

我觉得你一个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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文