问题标签 [opera-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 所有 Google 搜索页面的匹配模式
我正在开发一个扩展程序,它将对所有 Google 搜索 URL 执行特定操作 - 但不在其他网站或 Google 页面上。在自然语言中,匹配模式是:
- 任何协议 (
'*://'
) - 任何子域或无(
'www'
或''
) - 域字符串必须等于
'google'
- 任何 TLD,包括三字母 TLD(例如
'.com'
)和多部分国家 TLD(例如'.co.uk'
) - 路径的前 8 个字母必须相等
'/search?'
许多人说“匹配所有使用的谷歌搜索页面"*://*.google.com/search?*"
,但这显然是不真实的,因为它不会匹配像 google.co.uk 这样的国家顶级域名。
因此,以下代码根本不起作用:
使用"*://*.google.com/search?*"
as 匹配模式确实有效,但我担心我需要每个 Google 本地化的列表才能成为有效的策略。
opera-extension - Opera Sync 和 chrome.storage.sync
我想知道如何chrome.storage.sync
在 Opera 中同步。
文档谈到 Opera Sync,是 Opera Link 吗?是否有任何网页可以指导用户如何启用chrome.storage.sync
扩展设置同步?
Opera按钮>更多工具>同步有什么关系吗?Chrome Sync 的实现对我来说要简单得多。
如果我不知道它是否适用于 Opera,则无法使用它。
macos - Opera 15+ 扩展 tabs.sendMessage 仅在浏览器重启后有效
我重新设计了“Clip to DEVONthink”以在 Opera 15+ 中使用。我留下的问题是该扩展仅在浏览器重新启动后才有效。
更新 1:在 Mac OS X 10.9.2 上使用 Opera 21.0.1432.67、Opera Next 22.0.1471.40 和 Google Chrome 35.0.1916.114 进行测试。它们的行为都相同。
更新 2:Opera 自己的消息传递示例具有相同的行为。我的问题是这是否是预期的行为。
manifest.json 中定义了一个后台脚本:
和内容脚本:
...在 chrome.browserAction.onClicked.addListener 的 main.js 中,一条消息被发送到内容脚本以请求页面标题和内容等。
...内容脚本发回一条消息:
...并且该消息由 main.js 后台脚本接收:
如上所述,它在浏览器重新启动后可以正常工作,但它不明白为什么没有它就无法工作。
有没有人有想法(我可能会补充说我不擅长编程,并且设计中可能存在根本缺陷)?
google-chrome-extension - 有关 chrome.webRequest.onErrorOccurred 的更多信息
我正在尝试开发一个浏览器扩展,当遇到错误情况时,它将增加基于铬的浏览器的弹性。
是否可以获得基于 chromium 的浏览器可能遇到的所有可能错误的列表,以及 chrome.webRequest.onErrorOccurred 由 * 触发的值?
我还注意到文档说由于错误代码可能会发生变化,因此不应将它们用于处理。鉴于我的扩展基于更改浏览器对某些错误条件的反应方式,那么传递这些字符串的替代方法是什么?
- 到目前为止,我看到的一些示例是“net::ERR_ABORTED”、“net::ERR_EMPTY_RESPONSE”和“net::ERR_BLOCKED_BY_CLIENT”。我不确定“net::ERR_INTERUPTED”是否也是一个。
javascript - 用于打开文件的 Opera 扩展
我的问题很简单。有没有办法通过 Opera 扩展打开已经保存在计算机中的外部文件?我知道通常在网络上的 javascript 中,出于安全考虑,这是不可能的,但扩展不是本地的吗?
谢谢你,祝你有美好的一天
opera-extension - chrome.runtime.onStartup 未在 Opera 23 中运行
从 Opera 22 (22.0.1471.70) 更新到 Opera 23 (23.0.1522.77) 后,我发现该事件chrome.runtime.onStartup
不再起作用。该更新破坏了我的一个扩展。
写了一个小测试器扩展来尝试一下,如果事件运行会弹出一个警报:
StartupTester:[链接已删除,已回答]
尝试在 Opera 22(如果可能,如果不尝试 Chrome)和 Opera 23 中加载它。在 Opera 23 中没有出现 js 警报。我很确定 Opera 22 支持 onStartup,因为我的扩展当时可以工作。
notifications - 网络通知中的图像,Opera 25+
有人知道如何在 Opera 25+ 网络通知中显示图像吗?
根据 Opera 的说法,这应该是可能的,但我找不到任何关于它是如何完成的参考。已经尝试通过(部分)支持的 Chrome 通知 API 使用它,但没有运气。应该是这样的:
google-chrome - 在 Chrome 扩展中生成下载文件的 md5/sha1/sha256 哈希
如何使用 chrome API 或其他方式生成下载文件的 MD5/SHA1/SHA-256?
opera - Opera Local 屏幕共享的 getUserMedia API 支持
我正在创建一个 Opera 扩展,它将打开一个网页,该网页将允许用户将本地窗口流式传输到浏览器 html 文件。由于 Opera 扩展结构与 chrome 类似,所以我在 Opera 上测试了结构。
对于具有权限的清单:
错误 :
并使用该方法:
控制台错误:
Opera 是否有一些关于 getUserMedia API 使用的文档可以帮助解决这个问题 已经通过:
* https://dev.opera.com/articles/getusermedia-access-camera-privacy-ui/
* https://dev .opera.com/tags/getusermedia/
* WebRTC官方页面
javascript - Opera 中的 chrome.tabs.query 没有结果
我开发了一个Chrome 扩展程序,它在 Chrome 39 中运行良好,但在Ubuntu 14.04(64 位)上的 Opera developer 24 中出现错误。
响应 tabs.query 时出错:TypeError: Cannot read property 'id' of undefined at HTMLLIElement.click
所以我chrome.tabs.query
在两个浏览器控制台上进行了测试:
在 Chrome 中,它返回一个完整的Tab
对象。
但在 Opera 中,它返回一个空白数组[]
。
为什么会这样?