循环创建多个上下文菜单

时间:2011-12-12 19:47:20

标签: google-chrome-extension contextmenu

我有一大堆代码:

        for (game in settings_object.games)
        {   
            chrome.contextMenus.create({
                "title": "Add thread("+request.thread+") to game: "+game,
                "contexts":["page"],
                "onclick": function () {addThreadToGame(game,request.thread)}
            });

        }

这会生成一个上下文菜单,如:

  • 将线程(1234)添加到游戏:Game One的ID
  • 将线程(1234)添加到游戏:第二场比赛的ID
  • 将线程(1234)添加到游戏:游戏三的ID

目的是当用户点击“添加线程(1234)到游戏:第一场比赛”然后 addThreadToGame(“第一场比赛ID”,“1234”) )得到执行...遗憾的是,似乎addThreadToGame总是作为addThreadToGame (“游戏三的ID”,“1234”)触发,因为传递给函数的值始终是它在运行时的最后一个值而不是菜单生成时间...我错过了什么?

1 个答案:

答案 0 :(得分:1)

找到答案:

      for (game in settings_object.games)
      {   
          chrome.contextMenus.create({
              "title": "Add thread("+request.thread+") to game: "+game,
              "contexts":["page"],
              "onclick": (function(element) {
                      return function(info, tab) {
                          addThreadToGame(element,request.thread)
                      }
                  })(game)

          });
      }

在调整我在selection and site search in chrome extension

中找到的代码之后