我刚开始使用谷歌Chrome扩展程序,我似乎无法从我的后台js登录到控制台.发生错误时(例如,由于语法错误),我也找不到任何错误消息.
我的清单文件:
{
"name": "My First Extension",
"version": "1.0",
"manifest_version": 2,
"description": "The first extension that I made.",
"browser_action": {
"default_icon": "icon.png"
},
"background": {
"scripts": ["background.js"]
},
"permissions": [
"pageCapture",
"tabs"
]
}
Run Code Online (Sandbox Code Playgroud)
background.js:
alert("here");
console.log("Hello, world!")
Run Code Online (Sandbox Code Playgroud)
当我加载扩展时,警报出现但我没有看到任何记录到控制台.我究竟做错了什么?
debugging console google-chrome-extension google-chrome-devtools
我很高兴使用Google Chrome扩展程序,我只想知道如何将当前标签的网址存储在变量中?
我正在寻找一种在我的浏览器控制台中运行ECMAScript 6代码的方法,但是大多数浏览器都不支持我正在寻找的功能.例如,Firefox是唯一支持箭头功能的浏览器.
有没有办法(扩展名,用户脚本等)我可以在Chrome上运行这些功能?
google-chrome userscripts google-chrome-extension ecmascript-6
如果我console.log('something');从弹出页面或其他任何脚本调用它,它可以正常工作.
但是,由于后台页面没有直接从弹出页面运行,因此它不包含在控制台中.
有没有办法让我可以console.log()在后台页面显示弹出页面的控制台?
有没有办法,从后台页面调用弹出页面中的一个函数?
所以,我有一个选项页面,用户可以在其中定义某些选项并将其保存在localStorage中: options.html
现在,我还有一个内容脚本需要获取options.html页面中定义的选项,但是当我尝试从内容脚本访问localStorage时,它不会从选项页面返回值.
如何让我的内容脚本从localStorage,选项页面甚至后台页面获取值?
我查了一下:
C:\Documents and Settings\username\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions
Run Code Online (Sandbox Code Playgroud)
对于解压缩的扩展名,但该文件夹对我来说是空的.
对于较新版本,Chrome会将文件存储在何处?
有没有办法做到这一点?我正在编写一个与网站交互作为内容脚本的扩展程序,并使用localstorage保存数据.是否有可用于测试此行为的工具,框架等?我意识到有一些用于测试javascript的通用工具,但是那些足以测试扩展的能力吗?单元测试是最重要的,但我也对其他类型的测试(例如集成测试)感兴趣.
我试图在内容脚本和扩展名之间传递消息
这是我在content-script中的内容
chrome.runtime.sendMessage({type: "getUrls"}, function(response) {
console.log(response)
});
Run Code Online (Sandbox Code Playgroud)
在我的后台脚本中
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.type == "getUrls"){
getUrls(request, sender, sendResponse)
}
});
function getUrls(request, sender, sendResponse){
var resp = sendResponse;
$.ajax({
url: "http://localhost:3000/urls",
method: 'GET',
success: function(d){
resp({urls: d})
}
});
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我在getUrls函数中的ajax调用之前发送响应,则响应成功发送,但是当我发送响应时,在ajax调用的success方法中它不发送它,当我进入调试时我可以看到sendResponse函数代码中的端口为null .
javascript google-chrome google-chrome-extension google-chrome-app
自上周发布chrome(34.0.1847.116)以来,我在使用watir-webdriver运行自动化测试时收到了"禁用开发人员模式扩展".
这似乎是令人反感的延伸,但对我来说这是一个潜在危险的扩展,因为它是由chromedriver使用的.
任何已找到此修复程序的人,因为我无法回滚到以前的版本或找到旧版本的安装程序回滚到这对我的测试造成严重破坏.


google-chrome google-chrome-extension watir-webdriver selenium-chromedriver
当我在Chrome网络检查器中查看页面的下载资源时,我还会看到某些扩展程序所请求的HTML/JS/CSS.

在上面的示例中indicator.html,indicator.js并且indicator.css实际上是可读性Chrome扩展程序的一部分,而不是我的应用程序的一部分.
在这种特殊情况下,这不是一件大事,但是在一个更复杂的页面上安装了几个扩展程序,它可能会非常拥挤!
我想知道是否有办法从此列表中过滤掉任何与扩展相关的资源(即使用该chrome-extension://协议的任何请求).
有谁知道我怎么能做到这一点?
google-chrome google-chrome-extension google-chrome-devtools
javascript ×2
browser-tab ×1
console ×1
debugging ×1
ecmascript-6 ×1
path ×1
unit-testing ×1
userscripts ×1