Javascript 在与网站相同的选项卡中以编程方式打开chrome扩展页

Javascript 在与网站相同的选项卡中以编程方式打开chrome扩展页,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在制作一个基于chrome扩展名的编辑器,我希望用户能够在收到如下链接时打开扩展名中的文件:http://myeditor.com/link.html?file=xxxx 当访问该网站时,我希望: 如果打开url的人有扩展名,请打开chrome-extension://blahblah/?file=xxx 否则,将显示文件的只读版本和安装扩展名的链接 现在,我在link.html文件中有一个如下脚本: if (window.chrome) { if (chrome

我正在制作一个基于chrome扩展名的编辑器,我希望用户能够在收到如下链接时打开扩展名中的文件:
http://myeditor.com/link.html?file=xxxx

当访问该网站时,我希望:

  • 如果打开url的人有扩展名,请打开
    chrome-extension://blahblah/?file=xxx
  • 否则,将显示文件的只读版本和安装扩展名的链接
现在,我在link.html文件中有一个如下脚本:

    if (window.chrome) {
        if (chrome.app.getDetails() === null) {
            chrome.runtime.sendMessage(chromeId, { message: "isInstalled" }, function (reply) {
                if (reply) {
                    chrome.runtime.sendMessage(chromeId, { gotoUrl: document.location.search });
                }
            });
        }
    }
在扩展名的background.html中:

chrome.runtime.onMessageExternal.addListener(
    function(request, sender, sendResponse) {
        if (request) {
            if (request.message) {
                if (request.message == "isInstalled") {
                    sendResponse(true);
                }
            }
            if (request.gotoUrl) {
                var url = chrome.extension.getURL(request.gotoUrl);

                chrome.tabs.create({url: url}); // how do I open this in the same tab rather than create a new tab?
            }
        }
        return true;
    });

问题是代码创建了一个新选项卡,有没有办法在我调用它的页面的同一选项卡中打开扩展页面?

实际上
chrome.tabs.update
而不是
chrome.tabs.create
工作正常