我试图在内容脚本和扩展名之间传递消息
这是我在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
我正在研究使用clang的代码完成机制时潜在的代码完成速度.下面描述的流程是我在rtags中发现的Anders Bakken.
翻译单元由守护程序监视文件进行解析以进行更改.这是通过被调用的clang_parseTranslationUnit和相关的函数(reparse*,dispose*)来完成的.当用户在源文件中的给定行和列请求完成时,守护程序将缓存的转换单元传递给源文件的最后保存版本和当前源文件clang_codeCompleteAt.(Clang CodeComplete docs).
传递给clang_parseTranslationUnit(来自CompletionThread :: process,第271行)的标志是CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodes.传递给clang_codeCompleteAt(来自CompletionThread :: process,第305行)的标志是CXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatterns.
调用clang_codeCompleteAt非常慢 - 即使在完成位置是合法成员访问代码的情况下,也需要大约3-5秒来获得完成,这是文档中提到的预期用例的子集clang_codeCompleteAt.IDE代码完成标准似乎太慢了.有没有办法加速这个?
如果页面标题包含特定文本,如何向加载的页面添加一些HTML代码?
Chrome扩展程序是我的新理由,非常感谢您的帮助.
这似乎是最简单的事情,但它只是不起作用.在普通的浏览器中,.html和.js文件工作正常,但在Chrome扩展程序中,该onClick功能没有执行它应该执行的操作.
.js文件:
function hellYeah(text) {
document.getElementById("text-holder").innerHTML = text;
}
Run Code Online (Sandbox Code Playgroud)
.html文件:
<!doctype html>
<html>
<head>
<title>
Getting Started Extension's Popup
</title>
<script src="popup.js"></script>
</head>
<body>
<div id="text-holder">
ha
</div>
<br />
<a onClick=hellYeah("xxx")>
hyhy
</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
所以基本上一旦用户点击"hyhy","ha"应该变成"xxx".再次 - 它在浏览器中完美运行,但在扩展中不起作用.你知道为什么吗?以防我在下面附上manifest.json.
提前致谢!
manifest.json的:
{
"name": "My First Extension",
"version": "1.0",
"manifest_version": 2,
"description": "The first extension that I made.",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"http://api.flickr.com/"
]
}
Run Code Online (Sandbox Code Playgroud) 我们的角度应用有时不会加载镀铬金丝雀(版本41.0.2237.0金丝雀(64位))说
无法实例化模块ngHintModules,原因如下:RangeError:超出最大调用堆栈大小
但它在firefox,chrome(版本39.0.2171.71(64位)),safari中运行良好.
可能不确定是否与角度有关.
完全错误
Uncaught Error: [$injector:modulerr] Failed to instantiate module ngHintModules due to:
RangeError: Maximum call stack size exceeded
at Array.forEach (native)
at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2333:21)
at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2384:5)
at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7
at Array.forEach (native)
at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21)
at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7
at Array.forEach (native)
at module.exports (chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2385:21)
at chrome-extension://ighdmehidhipcmcojjgiloacoafjmpfk/dist/hint.js:2387:7
Run Code Online (Sandbox Code Playgroud)
NB:我在这里展示的错误来自
版本41.0.2237.0金丝雀(64位)
现在看来似乎应该能够查看localStorage/ chrome.storage安装在我的浏览器Chrome扩展的.我曾经玩过开发者工具,但还没有找到办法.有任何想法吗?
google-chrome local-storage google-chrome-extension google-chrome-devtools
我想用chrome的控制台调试一个tampermonkey脚本,但我在列表中找不到我的脚本..

我做错了什么,或者只是那里出现了防篡改脚本吗?在这种情况下,我该如何调试它?
我正在开发Chrome扩展程序,我想知道有哪种方法可以检测用户使用的是哪个版本的Chrome?
我的Chrome应用有以下清单:
{
"name": ",
"version": "1.0.3",
"manifest_version": 2,
"description": "Chrome Extension for.",
"icons": {
"16": "images/test.png",
"19": "images/test.png",
"256": "images/test.png"
},
"app": {
"background": {
"scripts": [
"background.js"
]
}
},
"sandbox": {
"js": [
"lib/test-api.js"
]
},
"permissions": [
"<all_urls>",
"notifications",
"storage",
"videoCapture"
]
}
Run Code Online (Sandbox Code Playgroud)
我有一个运行的脚本文件eval.我已经阅读了有关CSP和沙盒的内容,但我仍然收到此错误:
拒绝将字符串评估为JavaScript,因为'unsafe-eval'不是以下内容安全策略指令中允许的脚本源:"default-src'self'chrome-extension-resource:".请注意,'script-src'未明确设置,因此'default-src'用作后备.
javascript google-chrome manifest content-security-policy google-chrome-app
上下文:编写一个应该是跨平台的绘图程序.所以我有多个前端负责提供对Cairo上下文的后端类访问,基本事件处理和窗口小部件大小信息.我最近决定将当前的UI比例(用于高DPI显示)添加到最后一位,主要是因为我想将图形切换为渲染到图块缓存,所以我需要知道显示器可以支持的最高级别的细节.
在我的小跨平台世界中,我希望后端类的前端适配器我正在谈论正确配置Cairo上下文以便在将其交给我之前在虚拟化像素中工作.我只需要比例来限制我在瓷砖上使用的缩放比例.
在AppKit上,这很容易:要求NSView将1个虚拟像素的NSSize缩放为"后备存储坐标",并将其交给后端类.Apple也非常聪明,可以提供预先扩展的CoreGraphics上下文,因此我所要做的就是请求翻转坐标并将CGContext推送到Cairo.
在GTK上我有点困惑.似乎有太多方法可以做到这一点.GtkWidget有一个" get scale factor "调用,gint gtk_widget_get_scale_factor (GtkWidget *widget)它返回一个整数值.这似乎有点过于严格,因为你无法处理这种情况之间的屏幕.即我所关注的28"3840x2160显示器应该是1.5倍显示器,但在GTK下,一切都会太小或太大.
Ubuntu也投入了自己的扳手,因为它有自己的DPI比例因子,似乎与其他一切不同.只有少数应用程序似乎真正支持它.我把它调到了1.5; Firefox和Brackets没有扩展,Nautilus和终端确实扩展,Empathy做了这个奇怪的事情,除了会话文本之外的所有内容.所以它显然不是全系统的,甚至不是内置于GTK ...... blarrgh.
另外,X11有自己获取DPI信息的方式,我听说这是非常不准确的,无论如何都不值得考虑,因为Mir和Wayland无论如何都要替换它.
但是,我无法找到有关这个超级特殊的Unity API的任何信息,以获取用户指定的UI比例.所以我现在要抓住GTK自己的整数刻度,我认为这不足以满足要求.我真的很想知道如何获取Unity scale参数,或任何其他桌面环境自己的专有UI比例参数,但我有一种感觉,我可能还需要发送自定义首选项来为此特定前端手动配置UI缩放.
(对于那些好奇的人:我的代码在这里可用- 我正在讨论的后端类是在src/canvasview.cpp中,前端"视图适配器"的例子在frontends/gtk/src/CanvasWidget.cpp和frontends /中分别是appkit/src/ICAKCanvasView.m.请记住,当我忙于调试基于tile的渲染时,代码当前处于损坏状态.)