我正在基于用户的动作在右键菜单中创建一个动态的选项.如果用户选择一些文字,则右键单击,该选项将显示“显示它”.如果用户右键单击而不选择某些文本,则该选项将显示“首先选择一些文本”,并将其显示为灰色.我想知道如何实现这一点?
我目前有这样的选项,只有当用户选择了一些文本时才会出现该选项.我不确定如何修改它以满足我的第二个要求.
chrome.contextMenus.create ({ title:"Display It!",contexts:["selection"],onclick:function(info,tab) { chrome.tabs.sendRequest( tab.id,{callFunction: "displaySidebar",info: info},function(response) {console.log(response);} ); } });
解决方法
你不能灰色的项目出来… Chrome已经做了一些努力,只有使上下文菜单项出现在它的相关哪些是为什么我猜没有灰色选项.您的方式与Chrome试图实施的方式相反,我认为您应该重新思考这一点.
这样,您可以使用chrome.contextMenus.update来更改菜单项.
以下代码与您的方式一样好(认真重新思考这个想法)….
这样,您可以使用chrome.contextMenus.update来更改菜单项.
以下代码与您的方式一样好(认真重新思考这个想法)….
function selectedTrueOnClick(info,tab) { chrome.tabs.sendRequest( tab.id,{ callFunction: "displaySidebar",info: info },function(response) { console.log(response); }); } function selectedFalSEOnClick(info,tab) { // } var contextMenuID = chrome.contextMenus.create({ title: "Select some text",contexts: ["all"],onclick: selectedFalSEOnClick }); function contextMenuUpdate(selected) { if (selected) chrome.contextMenus.update(contextMenuID,{ title: 'You selected "%s"',onclick: selectedTrueOnClick }); else chrome.contextMenus.update(contextMenuID,{ title: "Select some text",onclick: selectedTrueOnClick }); } contextMenuUpdate(false);