问题标签 [browser-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 回答
1226 浏览

firefox - 每个 Firefox 和 Chrome 扩展安装的唯一 ID

有没有一种方法可以生成类似于“计算机 id”的东西,它在每台计算机上都与 firefor 和 chrome 扩展不同,以用于跟踪目的?

我的意思是,我希望每个扩展安装都有一个唯一的 ID,该 ID 在该计算机上始终相同,但在每台计算机上不同。

chrome 和 firefox 扩展上的 id 不需要相同

0 投票
2 回答
101 浏览

web-applications - 使用哪种技术自动为网页添加书签?

浏览网页时,我经常发现自己希望使用“自动书签”功能。

例如,从头开始阅读博客的所有帖子时,我想自动跟踪我上次查看的帖子。

举一个不同的例子,我可能想自动为我访问的所有包含某些关键字的页面添加书签。

(通过“书签”,我不一定指“浏览器书签”,只是一种在我的本地机器上存储/处理 URL 以便我以后可以打开它的方法)。

哪种技术最适合解决这个问题(如果这很重要,我正在使用 Linux)?我能想到的有:

  • 浏览器扩展:缺点是这高度依赖于浏览器。我喜欢使用 Opera,但不确定它是否可以扩展来做到这一点。
  • 在 localhost 上运行的 Web 应用程序,它在 iframe 中加载其他页面:由于 XSS 保护,我不确定这是否可能。
  • 本地代理服务器,当 URL 或页面内容匹配某些模式时,它会过滤所有 HTTP 流量并执行自定义脚本。这似乎是最灵活的选择,但也是最复杂的。

您对此有何看法?

0 投票
1 回答
335 浏览

http - 浏览器扩展是否应该更改它发起的请求的 User-Agent 标头?

我们正在开发一个浏览器扩展,作为其功能集的一部分,它连接到外部 API(在我们的服务器上)以加载数据。

出于几个原因,了解哪个版本的扩展正在连接到 API 很有用。跟踪版本之间的升级率可能很有用,但我们可能需要根据在旧版本扩展中观察到的错误对 API 做出不同的响应。

扩展让服务器知道它正在运行什么版本的最佳方式是什么?

  1. 将信息添加到现有的 User-Agent 标头?(即这个请求是从我在这个浏览器中的扩展发送的)
    User-Agent: Mozilla/5.0 (…) Firefox/3.6.3 (MyPlugin/1.2.3.2256)

  2. 完全替换 User-Agent 标头?(即这个请求是从扩展发送的,因为它不是由浏览器呈现的,所以原始的 UA 字符串无关紧要)
    User-Agent: MyPlugin/1.2.3.2256

  3. 为请求添加单独的标头只是为了跟踪此信息?(即这个请求仍然是从扩展的主机浏览器发送的,但这里还有一些额外的信息给你)
    User-Agent: Mozilla/5.0 (…) Firefox/3.6.3
    X-MyPlugin-Version: 1.2.3.2256

选项 3 对我来说听起来有点逃避,因为 User-Agent 标头的特定目的是传递有关发出请求的程序的信息,但我不知道其他之间是否有任何具体建议两个选项

0 投票
2 回答
2817 浏览

google-chrome-extension - 琐碎的 Chrome 页面操作扩展不起作用

我正在尝试编写一个简单的 Chrome pageAction 扩展来将页面上的所有锚点从一个域更改为另一个域......但我似乎无法让它工作,而且我在调试它时遇到了麻烦。

我是否误解了如何构建这种扩展?还是我只是在滥用 API?

清单.json

背景.html

内容.js

0 投票
1 回答
692 浏览

.net - 如何以编程方式将图像插入到 Gmail 邮件中

我们正在构建一个浏览器扩展,它调用一个返回 HTML 并将这个 HTML 放入 GMAIL 的 Compose 框中的 RESTful Web 服务。我们遇到的问题是图像。我们希望将图像直接放入 GMail,而不是链接到我们服务器上的 URL。任何人都知道我们如何解决这个问题?

0 投票
1 回答
50 浏览

browser - 每次用户上传图片时,我可以使用什么技术在浏览器(客户端)上运行方法?

每次用户将图片上传到网络服务器时,我都有一个自定义函数/方法需要在浏览器(客户端)上运行。此方法修改正在上传的图像并将其发送到服务器。

目前该方法是用java编写的,所以我想在浏览器上使用一个applet,它可以运行这个方法,然后将修改后的图片发送到驻留在服务器上的servlet,但是applet有一定的磁盘读/写限制。我知道可用于将这些权限授予小程序的策略,但它们每次都需要用户同意。

我还想避免每次查看此页面时都下载小程序 .class 文件。所以

  1. 有没有更清洁的方法来解决这一切?
  2. 是否有任何其他技术可以帮助我在浏览器上运行此方法?(如果我必须用不同的语言重写函数,那没关系)
  3. 编写自定义浏览器扩展是个好主意吗?
0 投票
2 回答
2672 浏览

javascript - Safari 扩展将消息发送到特定选项卡

有没有办法将消息从全局页面发送到特定选项卡
我目前正在做的是,在创建选项卡时,注入的脚本会创建一个唯一的 id 并将带有此编号的消息发送到全局页面,并且全局页面会保存此编号。
如果全局页面需要将一些数据发送到选项卡(即: tab #3),那么全局页面将向所有选项卡“广播”一条消息,其中数字#3作为传递给选项卡的数据的一部分(遍历所有选项卡并发送消息到每个选项卡)。
有没有像 Chrome: (ie: chrome.tabs.sendRequest(tabID, {action: 'respond', params:[channel,msg,async]});) 之类的东西?

现在我正在做的是在注入脚本方面,每个脚本都有一个监听器来捕获这个消息。如果内容脚本唯一编号等于全局页面发送的编号,则此消息是给它的,否则doNothing

在 Safari 中是否有更简单、更优雅的方法来执行此操作?

0 投票
1 回答
541 浏览

c# - IE9 工具栏按钮的自定义图标

我为 IE9 做了一个扩展,添加了一个工具栏按钮。

注册看起来像这样:

问题是 - 图标被引用为文件系统上的文件,而不是 URL。IE Gallery 将插件分发为 .dll 而不是 .msi,因此我没有机会将 .ico 放到本地文件系统上。

如何让按钮使用我的图标?

0 投票
1 回答
868 浏览

open-source - 开源、多平台、基于浏览器的屏幕截图扩展?

我正在考虑一个项目,该项目涉及浏览器用户能够屏幕捕获任何网页的内容(最好是整个页面,而不仅仅是可见部分),在图像上做一些简单的注释(圆圈、箭头、下划线、文本标签)并将带注释的图像发送到服务器。

我看到有几个商业或免费软件基于浏览器的屏幕捕获实用程序(我不能在这个项目中使用它们,因为它需要与特定服务器的特定通信)。

我正在考虑编写我自己的一组扩展,但这有点令人生畏,部分原因是 IE 的 COM 复杂性,但更普遍的是因为这样的扩展似乎很容易随着浏览器更新而中断,而且因为我希望它能够跨越多个浏览器似乎很快就会成为维护的噩梦。

你知道任何基于浏览器的开源屏幕截图扩展吗?很好的代码示例展示了如何在各种浏览器上执行此操作。伟大的将是一个积极支持的图书馆。

0 投票
3 回答
3000 浏览

html - 用于复制具有样式的页面元素的附加组件

我正在为任何浏览器寻找一个插件,它可以将任何特定网页元素及其所有样式复制到剪贴板以粘贴并显示给某人。

目的是有机会快速分享我的大项目的一小部分,或协助撰写有关此 HTML 和 CSS 技巧的文章或检查其他人的部分工作。

有任何想法吗?如果不存在这样的插件,我会尝试自己写。