微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Chrome扩展 – 动态右键菜单

我正在基于用户的动作在右键菜单中创建一个动态的选项.如果用户选择一些文字,则右键单击,该选项将显示显示它”.如果用户右键单击而不选择某些文本,则该选项将显示“首先选择一些文本”,并将其显示为灰色.我想知道如何实现这一点?

我目前有这样的选项,只有当用户选择了一些文本时才会出现该选项.我不确定如何修改它以满足我的第二个要求.

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来更改菜单项.
以下代码与您的方式一样好(认真重新思考这个想法)….
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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐