问题标签 [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.

0 投票
1 回答
52 浏览

opera-extension - 侧边栏 API opr.sidebarAction.setBadgeText 在 Opera 36.0.2114.0 中不起作用

在 Opera 36.0.X 的扩展中,无法在侧边栏的图标上显示徽章。错误在 36.0.2114.0 上得到确认,在 34.0.X 上不存在

0 投票
1 回答
275 浏览

javascript - Opera 扩展:存储选项和访问剪贴板

我正在考虑将我几年前写的一个 Firefox 扩展移植到 Opera,我会验证我从一开始就采取了正确的方式,所以请原谅我的一般性问题:

  • 我应该使用哪个 api 来读取或写入剪贴板?
  • 我的扩展依赖于用户的选项。据我了解,谷歌浏览器的选项页面在歌剧中不可用。我应该使用裸边来显示选项的当前值 + 存储 api 吗?

谢谢

0 投票
1 回答
200 浏览

javascript - url bar/omnibar 中的opera/chrome 上下文菜单

使用 Opera,我正在使用使用 contextMenu 查找选定文本的示例扩展。当用户在地址栏(网址栏、多功能框等)中单击鼠标右键时,我想在 contextMenu 中添加一个菜单项,我曾尝试在清单中:

并在后台脚本中:

但没有成功。那可能吗 ?我错过了一些明显的东西吗?

谢谢 F。

0 投票
1 回答
665 浏览

google-chrome-extension - 获取所有搜索提供程序/引擎列表的 API?

我正在开发一个 Opera 扩展。在某些时候,它允许用户执行搜索。现在我使用chrome.tabs.updatewith { url: `https://google.com/search?q=${encodeURIComponent(query)}`}。这不是用户友好的。更好的方法是在扩展的选项页面中维护用户可编辑的 URL 列表,https://google.com/search?q=https://ca.search.yahoo.com/search?p=允许用户在它们之间进行选择,但我真的不想重新发明轮子。

基于 Chromium 的浏览器都有用户可配置的搜索引擎/提供程序,我希望允许用户在它们之间进行选择,或者只使用默认值。为了实现这一点,我基本上需要两个 API 函数:

  • 获取所有已配置搜索引擎列表的功能;

  • 获取默认引擎的函数。

我在API 文档中没有发现任何与我的问题类似的内容。

顺便说一句,Opera 还有一个未记录的chrome.search功能(Chromium 没有),但无论用户的默认搜索引擎设置如何,它总是通过 Google 搜索。

谢谢。

PS。如果有更合适的地方问这个问题,请告诉我。

0 投票
1 回答
1982 浏览

javascript - 使用 element.click() 模拟 Javascript 中的按钮点击

我正在尝试为 Opera 编写一个自动发送特定聊天消息的扩展。(确切地说是命令。)为此,我想将消息输入文本区域,模拟按钮单击以发送消息并阅读我得到的回复。

我一直在尝试使用 JavaScript 的 Element.click() 函数来模拟点击,但它不起作用。我的代码是这样的:

textarea 填充了我想要的值,但它没有单击按钮。我也没有在控制台上得到任何输出。我很高兴能得到任何帮助。

问候, 杀手1

更新:你是对的,按钮没有OnClick我认为的事件。老实说,我不确定它是如何提交消息的。由于我正在为我不拥有的网站编写插件,因此我无法编辑源代码或任何内容。

0 投票
3 回答
174 浏览

google-chrome-extension - 使用存储的数据定义子菜单条目

我的扩展应该使用用户的选项在主扩展上下文菜单条目下构建子菜单。选项存储在一个表中,其中每一行定义一个子菜单。整个表存储为chrome.local.storage带有 key的 json 字符串jsondata

清单是:

在后台脚本中,我正在尝试使用以下方法获取数据:

然后build_submenu应该调用多个chrome.contextMenus.create({... })来添加子菜单。目前,我无法接到build_submenu电话。我是在尝试做一些不可能的事情,还是我只是错过了一些明显的事情?

谢谢,F。

0 投票
0 回答
968 浏览

javascript - Chrome 扩展:从后台脚本打开文件对话框

我正在为 Opera 浏览器开发音乐播放器扩展。这个想法很简单:从本地机器中选择文件并在边栏中播放它们。多亏了该<audio>元素,在侧边栏面板打开时,一切正常。

我使用该createObjectURL()方法将文件传递给<audio>元素。问题是它只包含对内存中文件的引用,当侧边栏面板卸载时,这些文件会丢失。我可以将这些引用发送到后台脚本,但这无济于事。

使用 aFileReader不是一个选项,因为它使用大量 CPU 和 RAM,并且在我打开文件时会暂时冻结浏览器。所以我想出了createObjectURL()在后台脚本中使用该方法的想法,因此在浏览器本身运行时引用将是活动的。

现在的问题是我无法从后台脚本打开文件对话框。我可以创建一个文件类型输入,也可以使用该click()方法,但对话框窗口不显示。但是,点击事件发生了,因为onclick正在调用事件侦听器。

所以我想请求一些帮助。是否可以从后台脚本打开文件对话框?如果是,我怎样才能让它工作?

0 投票
1 回答
355 浏览

google-chrome-extension - 如何在启动浏览器时强制 WebExtension 更新?

如何在启动浏览器时强制(或安装请求)WebExtension 更新?

在 Firefox 中,我需要单击此选项:

火狐

在 Opera 中,我需要单击此按钮:

在此处输入图像描述

我想知道的是,如果有任何更新或配置“manifest.json”来执行此操作,是否有任何方法可以使用 API 检查。

我需要为 Opera、Firefox 和 Chrome 添加自动更新。

我当前的 manifest.json (Firefox):

0 投票
1 回答
580 浏览

javascript - chrome.webNavigation.onCompleted 在完成前触发?

我正在尝试为自己构建一个扩展浏览器。这个想法是,当我单击插件的图标时,它会打开一个页面。然后我想在新页面完成加载后执行一些代码,但不知何故它不起作用。

现在来了失败的部分:

它们都在同一个背景脚本中,我没有内容脚本。清单中的权限是"tabs", "history", "webNavigation"

当我与开发人员控制台核对并执行以下操作时: document.getElementsByTagName("video").length我确实得到了正确的号码。

0 投票
2 回答
351 浏览

opera-extension - 是否有 API 可以自动将 Opera 插件上传到 addons.opera.com?

我们目前正在通过https://addons.opera.com/developer/上传我们扩展的每个新版本

因为我们需要为 Chrome 和 Firefox 执行类似的任务,所以整个工作变得乏味且容易出错。有没有办法自动化这个,类似于Chrome Store Publish API