gpt4 book ai didi

javascript - "about:blank"页面的 Chrome 扩展权限

转载 作者:数据小太阳 更新时间:2023-10-29 03:54:19 30 4
gpt4 key购买 nike

我的 chrome 扩展程序没有使用 content_scripts,因为我不想将代码注入(inject)每个页面。相反,当用户单击按钮时,会打开一个弹出窗口并将代码注入(inject)页面。

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

"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"。如果我尝试初始化扩展,我会在控制台中看到这条消息:

Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "about:blank". Extension manifest must request permission to access this host.

我没有看到将“about:blank” 页面添加到权限 的方法。我真的不想开始使用 content_scripts 只是为了设置 match_about_blank 设置。

我已经尝试将 "about:blank""about:* 添加到 permission 中,但我得到的只是一个安装错误.

There were warnings when trying to install this extension: Permission 'about:*' is unknown or URL pattern is malformed.

有解决办法吗?


更新:Here is a gist with everything you'll need .包含指向 jsbin 演示的链接,但问题不在于该站点。该扩展程序最初是在雅虎邮件弹出窗口上测试的,您可以通过选择打印电子邮件来获得该窗口。

最佳答案

尝试使用 chrome.tabs.executeScript({ file: "script.js", matchAboutBlank: true })

“如果 matchAboutBlank 为真,那么如果您的扩展可以访问其父文档,代码也会被注入(inject)到 about:blank 和 about:srcdoc 框架中。代码不能插入到顶级 about:-frames 中。默认情况下它是假的。”

https://developer.chrome.com/extensions/tabs#property-details-matchAboutBlank

关于javascript - "about:blank"页面的 Chrome 扩展权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288996/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com