我试图在内容脚本和扩展名之间传递消息
这是我在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 Apps和Extensions有什么区别?
对于您无法使用扩展程序执行的应用程序,您可以做些什么,反之亦然?
我很高兴用Chrome打包的应用程序替换Windows 8 Metro应用程序.目前,它需要模仿Metro应用程序的外观和感觉.主页面包含多个水平排列的webview,可以进行大量的水平滚动.尝试使用触摸设备水平滚动时遇到问题.如果滚动手势在webview上开始,则它正在捕获滚动事件并阻止主机滚动.所有Web视图都隐藏了溢出功能.由于它们构成了页面上的大部分内容,因此主机的有效滚动目标是有限的.
web视图内容是互动的,所以我不能逃脱放置一个透明覆盖在滚动内容捕获事件,至少在没有一些方法来传播的点击次数/触及通过对网页视图自己.
有关如何实现这一目标的任何想法?
谢谢你的帮助!
我正在使用一次性Chrome钱包付款为chrome商店开发打包应用程序.对于我的应用程序,我需要在运行时检查用户是否购买了应用程序,以决定它是演示功能还是完整功能.
根据chrome identity API文档:
要使应用程序ID保持不变,您需要将已安装的manifest.json中的密钥复制到源清单.
我有2个关于此程序的问题:
1)在什么条件下我的申请的ID可能会改变?我试图重新安装应用程序并进行更新,但应用程序ID保持不变..如果没有办法更改应用程序ID,为什么我需要此程序?
2)如何将带有manifest.json(包含"key"字段)的zip存档上传到chrome仪表板?问题是上传者向我抛出错误:
发生错误:无法处理您的商品.
清单中不允许使用关键字段.
google-chrome chromium google-chrome-extension google-chrome-devtools google-chrome-app
在最新的Chrome DevTools中,我可以看到一个新信息:
现在,我不确定如何使用这些信息.它似乎随机出现在应用程序中.如何调试应用程序以避免可能的内存不足崩溃?我检查了任务管理器,当这个信息出现时,应用程序使用大约55K内存,在这个应用程序的情况下是非常低的(当它计算一些数据时,它可以是更高的内存消耗).
所以我想知道这些信息是否准确并且存在崩溃的风险.如果是这样,我该怎么办呢?
我的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
我想配置我的计算机以启动Google Chrome Windows启动.它应该以全屏模式启动并打开一些网页.
我尝试使用以下命令行运行Chrome:
chrome.exe --start-fullscreen --app=https://google.com
Run Code Online (Sandbox Code Playgroud)
但Chrome在窗口模式下打开,而不是在全屏模式下打开.
有没有办法在全屏模式下运行chrome?
我正在尝试使用rib.crx从https://01.org/rapid-interface-builder/downloads/2012/rib-preview-1-chrome-extension下载的文件将Rapid Interface Builder扩展添加到chrome
不幸的是,每次我crx用chrome 打开文件时都会出现以下错误:
无法从此网站添加应用,扩展程序和脚本.
有想法该怎么解决这个吗?
我想创建一个包app chrome扩展,以允许用户编写和执行javascript代码(如javascript控制台).
我想使用该eval()函数来执行JS代码.
eval从chrome扩展调用时,经典的javascript 函数会抛出错误:
未捕获的错误:对于此上下文不允许从字符串生成代码
要eval在chrome扩展程序中使用,人们需要使用沙箱,但是当我在清单中编写沙箱时,我收到此错误:
尝试安装此扩展时出现警告:指定的包类型(主题,应用程序等)不允许使用"sandbox".
UPDATE
根据这个问题,包应用程序不支持沙箱,所以我有两个问题:
还有其他方法可以代替eval()吗?
eval没有沙盒可以使用吗?(我想可能不是出于安全考虑?)
javascript google-chrome eval google-chrome-extension google-chrome-app
我需要结合仅在Chrome打包应用(访问syncFileSystem)中提供的功能和仅在Chrome扩展中可用的功能(将脚本注入第三方网站).
似乎打包应用程序和扩展程序都无法实现这两个目标,所以我现在正在考虑尝试使用单独的打包应用程序和扩展程序进行通信来实现我所追求的目标.
我看到Chrome的文档解释了如何2个扩展可以通过沟通chrome.runtime.onMessageExternal.addListener和chrome.runtime.sendMessage,但没有关于打包应用程序和通信扩展.
有谁知道这是否允许?那里有文件或工作实例吗?
javascript google-chrome google-chrome-extension google-chrome-app