Mot*_*tie 10 javascript google-chrome google-chrome-extension
我的Chrome扩展程序没有使用,content_scripts
因为我不想将代码注入每个页面.相反,当用户点击按钮时,会打开一个弹出窗口并将代码注入页面.
所以,在manifest.json
一个权限块中:
"permissions": [
"activeTab"
]
Run Code Online (Sandbox Code Playgroud)
在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();'
});
});
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
问题是一些网站打开一个包含附加信息的弹出窗口.并且该弹出页面的URL是"about:blank"
.如果我尝试初始化扩展,我在控制台中看到此消息:
运行tabs.executeScript时未经检查的runtime.lastError:无法访问URL"about:blank"的内容.扩展清单必须请求访问此主机的权限.
我没有看到添加"about:blank"
页面的方法permissions
.我真的不想开始使用content_scripts
,所以我可以设置match_about_blank
设置.
我已经尝试添加"about:blank"
和"about:*
到permission
和我得到的是安装错误.
尝试安装此扩展时出现警告:权限'about:*'未知或URL模式格式错误.
有解决方案吗?
更新:这里有一个你需要的一切的要点.包含jsbin演示的链接,但问题不在于该网站的具体问题.该扩展程序最初是在雅虎邮件弹出窗口中测试的,您可以选择打印电子邮件.
尝试使用 chrome.tabs.executeScript({ file: "script.js", matchAboutBlank: true })
"如果matchAboutBlank为true,那么代码也会注入about:blank和about:srcdoc框架,如果您的扩展程序可以访问其父文档.代码不能插入顶层about:-frames.默认情况下它是false. "
https://developer.chrome.com/extensions/tabs#property-details-matchAboutBlank
归档时间: |
|
查看次数: |
2603 次 |
最近记录: |