使用上下文菜单onclick调用两个函数

时间:2018-11-14 15:46:05

标签: javascript google-chrome-extension

这是一个上下文菜单项,单击该菜单项应依次调用两个功能。第一个函数是 toggleTempWhitelistStateOfHighlightedTab() ,第二个函数是 suspendAllTabsInAllWindows(true) 。当我仅调用一个函数时,它可以工作,但是我调用两个函数的语法不正确。 onclick: 行上出现了问题。

  chrome.contextMenus.create({
    title: chrome.i18n.getMessage('js_context_force_suspend_all_tabs'),
    contexts: allContexts,
    onclick: () => toggleTempWhitelistStateOfHighlightedTab(), suspendAllTabsInAllWindows(true),
  });

2 个答案:

答案 0 :(得分:1)

我认为您缺少一些东西:

chrome.contextMenus.create({
    title: chrome.i18n.getMessage('js_context_force_suspend_all_tabs'),
    contexts: allContexts,
    onclick: () => { toggleTempWhitelistStateOfHighlightedTab(); suspendAllTabsInAllWindows(true) }
  });

答案 1 :(得分:0)

您在此处使用JavaScript的Arrow Function格式没有{}括号

但是,在这种情况下,您只能在右侧使用一个表达式(它将成为返回值)。

如果需要多个语句,则需要使用方括号/分号:

() => {toggleTempWhitelistStateOfHighlightedTab(); suspendAllTabsInAllWindows(true)}

注意:从逻辑的角度来看,最好具有命名处理程序函数。它看起来更干净,简洁并非总是最好的方法。

function suspend_all_tabs_click() {
  toggleTempWhitelistStateOfHighlightedTab();
  suspendAllTabsInAllWindows(true)
}

chrome.contextMenus.create({
    title: chrome.i18n.getMessage('js_context_force_suspend_all_tabs'),
    contexts: allContexts,
    onclick: suspend_all_tabs_click
});