Javascript 扩展编程:逻辑和动态行为应该存在哪里?背景js、内容脚本、弹出js

Javascript 扩展编程:逻辑和动态行为应该存在哪里?背景js、内容脚本、弹出js,javascript,browser,plugins,google-chrome-extension,Javascript,Browser,Plugins,Google Chrome Extension,我想创建一个扩展,它执行以下操作: 有一个页面操作或浏览操作(不确定哪一个更合适) 如果在我的数据库/服务中找到页面的url,则允许操作具有/显示一个弹出窗口,其中显示来自我的服务的一些信息 否则,使操作按钮看起来被禁用,并且不显示弹出窗口 我一直在尝试一个带有弹出窗口的背景脚本。无法在“我的服务”结果的弹出窗口集中显示内容。对于后台和弹出窗口之间的通信,我使用了这里的建议:但没有成功地使其工作。调试弹出窗口几乎是不可能的 我尝试在主页中使用content_脚本创建iFrame。那一点也不顺利。

我想创建一个扩展,它执行以下操作:

  • 有一个页面操作或浏览操作(不确定哪一个更合适)
  • 如果在我的数据库/服务中找到页面的url,则允许操作具有/显示一个弹出窗口,其中显示来自我的服务的一些信息
  • 否则,使操作按钮看起来被禁用,并且不显示弹出窗口
  • 我一直在尝试一个带有弹出窗口的背景脚本。无法在“我的服务”结果的弹出窗口集中显示内容。对于后台和弹出窗口之间的通信,我使用了这里的建议:但没有成功地使其工作。调试弹出窗口几乎是不可能的


    我尝试在主页中使用content_脚本创建iFrame。那一点也不顺利。很多跨帧异常。

    我认为,对于您正在做的事情,您应该查看页面操作。页面操作默认为灰色,但您可以选择显示它们。 查看一下,您可以通过在URL列表中循环来更新它

    function checkForValidUrl(tabId, changeInfo, tab) {
        chrome.storage.local.get(['urls'], function(result) {
            for (var item in result.urls) {
                if (tab.url.indexOf(item) > -1) {
                    chrome.pageAction.show(tabId);
                    //set url to the URL you want for the popup
                    chrome.pageAction.setPopup({tabId: tabId, popup: url})
                    //or you could create a new window - see https://developer.chrome.com/extensions/windows.html#method-create
                }
            }
        });
    }
    
    chrome.tabs.onUpdated.addListener(checkForValidUrl);
    

    编辑:对不起,我现在意识到你实际上是在调试弹出窗口。希望这有助于检查URL,尽管在chrome中,您可以在事件页面中使用declarativeContent API来注册页面操作的URL。@wOxxOm我认为使用declarativeContent无法在URL上执行任何操作。必须进行服务调用以确定URL是否符合条件。