Tag: 谷歌铬扩展

从Background.js在页面级执行代码并返回值

我有一个自己的脚本和variables,我需要执行和检索我的扩展的Background.js返回值的网页。 我明白(我想!)为了与网页交互,它必须通过chrome.tabs.executeScript或ContentScript完成,但是因为代码必须在原始页面的上下文中执行(为了有范围到脚本和variables),它需要首先注入页面。 在Rob W的这篇伟大的文章之后,我可以调用页面级脚本/variables,但是我正在努力理解如何以这种方式返回值。 这是我到目前为止… 网页代码 (我想与之交互): <html> <head> <script> var favColor = "Blue"; function getURL() { return window.location.href; } </script> </head> <body> <p>Example web page with script content I want interact with…</p> </body> </html> manifest.json : { // Extension ID: behakphdmjpjhhbilolgcfgpnpcoamaa "name": "MyExtension", "version": "1.0", "manifest_version": 2, "description": "My Desc Here", "background": { "scripts": […]

我的CSS没有通过我的内容脚本注入

任何人都可以向我解释这一点。 我正尝试使用带有Google扩展名的content_script将一个CSS文件注入到网页上,但是我的css文件从未被添加到网页中。 有人能告诉我我做错了什么,并帮我修复它吗? 谢谢 performance: { "name": "Extension", "version": "0", "description": "", "permissions": ["tabs", "http://*/*", "https://*/*", "file:///*/*"], "content_scripts": [ { "matches": [ "http://*/*", "https://*/*", "file:///*/*"], "css": ["myStyles.css"], "js": ["myScript.js"], "all_frames": true } ] } myStyles.css #test { margin: 0 10px; background: #fff; padding: 3px; color: #000; }

Chrome扩展程序如何将许多文件保存到用户指定的目录?

我正在使用Chrome扩展作为内部工具。 其要求的行为是: 作为页面操作,在查看特定的Intranet页面时启用地址栏图标。 当用户点击图标时,识别页面上某个媒体types(比如说.jpg)的所有文件 静静地将它们全部保存到用户本地驱动器上的目录中。 这个问题之前已经被问过了 ,但是答案是“ 使用NPAPI ”, NPAPI现在是失效的 。 那么,现在有什么办法可以实现呢? 我看过的是: chrome.FileSystem API–但是这不会将文件保存在任何用户可访问的位置。 相反,存储的文件隐藏在未公开目录中的混淆名称后面 。 用户要求文件以原始名称存储在可访问的目录中。 HTML5下载属性 ,通过创build一个data:URL并以编程方式点击它。 这会popup每个文件的“另存为…”对话框,当单个页面上有一百个资源时,这是不可接受的。 用户需要下载文件,而不需要单一图标点击以外的进一步交互。 Chrome下载API ,但只能在testing版和开发者版中使用。 用户需要使用主streamChrome的扩展程序。 通过创build一个小的.exe文件来简单地将文件保存到磁盘,然后将.jpg作为一个blob传递给它,使用本地消息API 。 这似乎非常麻烦,我甚至不知道如何可靠地通过大块到EXE这样的。 我可以尝试另一种方法吗?

Chrome扩展程序 – 获取DOM内容

我试图从popup窗口访问activeTab DOM内容。 这是我的清单: { "manifest_version": 2, "name": "Test", "description": "Test script", "version": "0.1", "permissions": [ "activeTab", "https://api.domain.com/" ], "background": { "scripts": ["background.js"], "persistent": false }, "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'", "browser_action": { "default_icon": "icon.png", "default_title": "Chrome Extension test", "default_popup": "index.html" } } 我真的很困惑,不pipe是后台脚本(带有persistence:false的事件页面)还是content_scripts都是要走的路。 我已经阅读了所有文档和其他SOpost,对我来说这仍然没有意义。 有人可以解释为什么我可以使用一个在另一个。 这是我一直在尝试的background.js: chrome.extension.onMessage.addListener( function(request, sender, sendResponse) { // LOG THE […]

如果Chrome扩展程序未安装或使用隐身模式,则Google Chrome浏览器会投放发件人错误

我在Chrome隐身模式下运行Chrome Cast发件人时出错,或者未安装Chrome扩展程序。 Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://dliochdbjfkdbacpmhlcpmleaejidimm/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://hfaagokkkhdbgiakmmlclaapfelnkoah/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://fmfcbgogabcbclcofgocippekhfcmgfj/cast_sender.js Failed to load resource: net::ERR_ADDRESS_UNREACHABLE chrome-extension://enhhojjnijigcajfphajepfemndkmdlo/cast_sender.js No cast extension found Google投递发件人正试图发送本地“cast_sender.js”的ajax请求。 如果发生这种情况,或者有一个更好的方法来检查是否存在chrome-cast发送者扩展(而不是通过请求ajax请求)? 我相信这些ajax请求是一种询问是否存在扩展名扩展的方法。 我有一个更好的方法来检查是否存在铬扩展扩展?

运行tabs.executeScript时未检查runtime.lastError?

我设法build立了Ripple模拟器开源( https://github.com/apache/incubator-ripple )。 我根据说明(Jake构build)构build了它,它创build了Chrome扩展目标,允许我通过构build的Chrome扩展来testing我的Web应用程序,按照https://github.com/apache/incubator-ripple/blob /master/doc/chrome_extension.md 。 我成功地将解压后的扩展加载到chrome上,但是当我启用它时,没有任何反应,虽然页面重新加载扩展不起作用,而是我得到2个错误: 未捕获的ReferenceError:未定义webkitNotifications webkitNotifications.createHTMLNotification('/views/update.html').show(); 运行tabs.executeScript时未经检查的runtime.lastError:无法访问chrome:// URL chrome.tabs.executeScript(tabId, { 我如何解决这个问题? 完整的background.js: if (!window.tinyHippos) { window.tinyHippos = {}; } tinyHippos.Background = (function () { var _wasJustInstalled = false, _self; function isLocalRequest(uri) { return !!uri.match(/^https?:\/\/(127\.0\.0\.1|localhost)|^file:\/\//); } function initialize() { // check version info for showing welcome/update views var version = window.localStorage["ripple-version"], xhr = […]

Chrome扩展程序:在内容脚本中访问localStorage

所以,我有一个选项页面,用户可以定义某些选项,并将其保存在localStorage: options.html 现在,我还有一个内容脚本需要获取options.html页面中定义的options.html ,但是当我尝试从内容脚本访问localStorage时,它不会从选项页面返回值。 如何让我的内容脚本从localStorage,选项页面甚至背景页面获取值?

如何更改chrome封装的应用程序ID或者为什么我们需要manifest.json中的关键字段?

我正在使用一次性钱包支付为Chrome商店开发打包的应用程序。 对于我的应用程序,我需要在运行时检查用户是否购买了应用程序,或者不要决定它是演示function还是全function。 根据Chrome 身份validationAPI文档 : 要保持应用程序ID不变,您需要将已安装的manifest.json中的密钥复制到源代码清单。 我有两个关于这个程序的问题: 1)在什么条件下我的应用程序的ID可能会改变? 我试图重新安装应用程序,并作出更新,但应用程序ID保持不变。如果没有办法改变应用程序ID比为什么我需要这个程序? 2)我怎样才能上传我的zip存档与manifest.json(其中包含“键”字段)铬仪表板? 问题是,上传者向我抛出一个错误: 发生错误:无法处理您的项目。 清单中不允许键字段。

端口错误,同时将chrome扩展从manifest v1更改为v2

在尝试将扩展从manifest 1版本移植到版本2时,出现: 端口错误:无法build立连接。 接收结束不存在。 chromeHidden.Port.dispatchOnDisconnect miscellaneous_bindings:232 这在控制台中出现在开发者工具中。 我不知道从哪里开始解决这个原因,我不知道是什么原因导致它开始.. 什么会导致这个问题? 还有什么方法可以确切知道是什么原因造成的? 谢谢。

自v38以来,Chrome扩展程序无法从HTTP URL加载,解决方法?

我们网站的用户运行我们的Chrome插件,其中包括通过Chrome扩展开发页面上描述的XMLHttpRequest执行跨源请求。 这几年来一直运行良好。 但是,自从我们的用户升级到最新版本的Chrome(v38)后,这些请求就失败了。 我们的网站运行在HTTPS上,并且通过我们的内容脚本加载的一些URL在HTTP上。 消息是: [blocked] https://www.ourpage.com/上的页面通过HTTPS加载,但是从http://www.externalpage.com运行不安全的内容:此内容也应该通过HTTPS加载。 发生错误的报告行位于发出HTTP调用的内容脚本中: xhr.send(null); 我无法控制外部页面,我宁愿不从我们自己的页面中删除SSL。 问题:这是一个错误还是有一个我不知道的解决方法? (注意:清单中的权限始终设置为<all_urls> ,这个权限已经工作了很长时间,将它设置为http://*/和https://*/并没有帮助。