Chrome上下文菜单生成的链接不正确

时间:2015-05-30 13:13:03

标签: javascript google-chrome url google-chrome-extension contextmenu

我编写了类似于Google Search in Google for '...'

的上下文菜单代码

代码工作正常,显示菜单选项并单击。选择菜单选项后,系统会创建新标签页但Chrome会尝试加载chrome-extension://acpffpbkehpfofhgilcophibgbkhmmba/https://www.google.co.in/search?q=Wikipedia而不是https://www.google.co.in/search?q=Wikipedia

请提出可能存在的问题。相关代码如下。

    function GoogleSearch(info, tab) {
        console.log("Search Google for " + info.selectionText);
        chrome.tabs.create({ 
            url: "www.google.co.in/search?q=" + info.selectionText,
        })
     }

cmid = chrome.contextMenus.create({ 
                                'title': "Search Google for '%s'", 
                                "contexts": ["selection"],
                                'onclick': GoogleSearch
                                });

2 个答案:

答案 0 :(得分:1)

定义要在 URL

中使用的协议
chrome.tabs.create({ 
    url: "https://www.google.co.in/search?q=" + info.selectionText,
}); //    ^^^^^^^^

如果您没有定义协议(或使用<a>启动 URI ,这将意味着“使用相同的协议”,您将在//上遇到相同的行为我们现在在“)。这是预期的行为。

答案 1 :(得分:-1)

var onRequest = function (i, t, u) {
        var buzz = encodeURI(u + i.selectionText);
        chrome.tabs.create({
            url: buzz
        });
    },
    createContext = function (t, call) {
        chrome.contextMenus.create({
            title: t,
            contexts: ["selection"],
            onclick: call
        }, function () {

        });
    },
    run = function (t, u) {
        createContext(t, function (i, b) {
            onRequest(i, b, u);
        });
    };
run("Search Google for : \"%s\"", "https://www.google.co.in/search?q=");