Javascript Chrome扩展许可证;关于:空白“;页

Javascript Chrome扩展许可证;关于:空白“;页,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我的chrome扩展没有使用content\u脚本,因为我不想将代码注入每个页面。相反,当用户单击按钮时,会打开一个弹出窗口,并将代码注入页面 因此,在manifest.json中有一个权限块: "permissions": [ "activeTab" ] 在popup.js中有以下代码: chrome.windows.getCurrent( function(win) { chrome.tabs.query({ 'windowId': win.id,

我的chrome扩展没有使用
content\u脚本
,因为我不想将代码注入每个页面。相反,当用户单击按钮时,会打开一个弹出窗口,并将代码注入页面

因此,在
manifest.json
中有一个权限块:

"permissions": [
  "activeTab"
]
popup.js
中有以下代码:

chrome.windows.getCurrent( function(win) {
    chrome.tabs.query({
        'windowId': win.id,
        'active': true
    }, function(tabArray) {

        // inject css & js only on initial click
        chrome.tabs.executeScript( null, {
            code : 'document.querySelector( "body" ).classList.contains( "_myExtension_code_injected" )'
        }, function( result ) {
            if ( result && !result[0] ) {
                chrome.tabs.insertCSS( null, {
                    file: 'myExtension.css'
                });

                chrome.tabs.executeScript(null, {
                    file: 'myExtension.js'
                }, function(){
                    chrome.tabs.executeScript(null, {
                        code: 'myExtension.init();'
                    });
                });
            }
        });

    });
});
问题是一些网站会打开一个带有附加信息的弹出窗口。该弹出页面的URL是
“about:blank”
。如果我尝试初始化扩展,我会在控制台中看到以下消息:

运行tabs时未选中runtime.lastError.executeScript:无法访问url“about:blank”的内容。扩展清单必须请求访问此主机的权限

我看不到向
权限添加
“about:blank”
页面的方法。我真的不想开始使用
content\u脚本
,只是为了设置
match\u about\u blank
设置

我已尝试将
“about:blank”
“about::
添加到
权限
中,但得到的只是一个安装错误

尝试安装此扩展时出现警告: 权限“about:*”未知或URL模式格式不正确

有解决办法吗



更新:。包含一个指向jsbin演示的链接,但问题不在该网站上。该扩展最初是在一个yahoo mail弹出窗口上测试的,您可以通过选择打印电子邮件获得该窗口。

尝试使用
chrome.tabs.executeScript({file:“script.js”,matchaoutblank:true})

如果matchAboutBlank为true,那么如果扩展插件可以访问其父文档,那么代码也会被注入about:blank和about:srcdoc框架。无法在顶级“关于:-帧”中插入代码。默认情况下,它为false。”


在执行任何代码之前,你不能检查
windows.location.href
值与
about:blank
的对比吗?Chrome正在阻止代码注入,因为它需要权限。我包括上面显示的错误。我理解这一部分。但我的意思是,如果可能的话,检查注入部分。(我对这方面的了解还不够,如果可能的话,我无法确定)那是行不通的,错误来自于执行
chrome.tabs.executeScript
,这是注入javascript的同一个函数。你能给出一个页面(或视频)的示例吗这说明了问题所在?Chrome扩展只有在确定框架的原点时才能在
about:blank
上执行脚本,并且该扩展具有在该原点上运行脚本的权限。因此,如果该扩展是一个
about:blank
页面,并且没有可由您的扩展访问的打开窗口或父框架,则该扩展将被拒绝访问。谢谢!我在文档中完全错过了这一点。遗憾的是,即使添加了该参数,我仍然会看到相同的错误消息。可能问题是“关于:空白”弹出页面没有显示为选项卡,因此我必须右击标题并选择“显示为选项卡”“以显示扩展按钮。问题可能是对父文档部分的访问。我创建了此要点,并提供了说明,以显示问题:我仍然收到此错误:
Unchecked runtime.lastError:无法访问源位置的”about:blank“null”.Extension必须具有访问帧原点的权限,并且matchAboutBlank必须为true。