标签: browser-extension

使用Facebook身份验证进行浏览器扩展

我想知道为浏览器扩展实现Facebook连接的最佳方式是什么.
我想到的两个选择是:

  • 直接在扩展上下文中实现Oauth协议(http://developer.chrome.com/extensions/tut_oauth.html)
  • 在网站中实现它然后以某种方式将访问令牌传递给扩展以进行API调用

您认为每种方法的优缺点是什么?
也很想得到一些使用Facebook进行身份验证的浏览器扩展示例(显然没有太多容易找到...)

谢谢

authentication facebook oauth browser-extension facebook-javascript-sdk

6
推荐指数
1
解决办法
348
查看次数

如何在浏览器扩展中的第一个选项卡/新窗口上加载页面

我有Chrome和Firefox的浏览器扩展程序,在manifest.json中我定义了一个要在新标签上加载的页面:

"chrome_url_overrides": {
    "newtab": "page.html"
},
Run Code Online (Sandbox Code Playgroud)

在Firefox中,这会在新选项卡中显示我的页面,但不会在第一个选项卡或新窗口中显示.在Chrome中,这没有问题,并显示第一个标签页,新标签页和新窗口的页面.

我读到了有关homepage设置,将使用如下:

"chrome_settings_overrides": {
    "homepage": "page.html"
},
Run Code Online (Sandbox Code Playgroud)

由于它位于不同的键(chrome_settings_overrides)中,我感觉它的行为也不同,但我在文档中找不到这两者之间的差异或相似之处.

Firefox文档实际上将这两个功能链接在一起,说明您可能需要另一个.(火狐NEWTAB主页,铬NEWTAB主页.)另外,我发现这个问题在Firefox的错误追踪系统(https://bugzilla.mozilla.org/show_bug.cgi?id=1341458),他们是从移动主页设置chrome_url_overrideschrome_settings_overrides,这意味着它们的工作方式相似.

更新:我尝试进行此更改并在没有特定说明的情况下破坏了Firefox中的扩展程序,并在Chrome中发出警告,指出homepage应该是一个网址.

有人知道如何扩展Firefox中的第一个/新窗口吗?

并且可选:

  • 如果这两个功能之间有任何差异?
  • 为什么Chrome似乎不需要homepage定义并使用newtab第一个选项卡和新窗口的设置?

firefox google-chrome browser-extension

6
推荐指数
1
解决办法
143
查看次数

用于复制带样式的页面元素的加载项

我正在寻找任何浏览器的附加组件,可以将任何特定网页元素及其所有样式复制到剪贴板中以粘贴并显示某人.

其目的是有机会快速分享我的大项目的一小部分或者写这个HTML和CSS技巧的文章,以协助或检查某人的其他工作的一部分.

有任何想法吗?如果没有这样的插件,我会尝试自己编写.

html css firefox-addon browser-extension google-chrome-extension

5
推荐指数
1
解决办法
2253
查看次数

为什么我打包的 chrome 扩展没有更新?

更新:解决了一个部分,但没有解决其他部分

  1. 我现在有 CRX 更新(它不是重建)。

  2. 但是,Chrome 不会接受 https URL 中的 XML 或 CRX。

我相信#2 是因为它是一个自签名证书。有谁知道是否有办法解决这个问题?(这纯粹是为了开发,所以在内部托管)

原帖:

我创建了一个托管在我的内部网站上的打包扩展程序,但是通过从桌面拖动它被添加到 Chrome 中(因为 Chrome 不允许通过外部网站安装打包扩展程序 - 请参阅此处:将 ExtensionInstallSources 首选项添加到 Chrome 的 URL 之后首选项,仍然不允许安装“.crx”打包应用程序)。

清单已update_url设置为位于我网站上的 XML 文件。该 XML 文件具有设置在updatecheck codebase='...'. 这两个文件都存在于网站上并且可以找到。我也更新过的从版本号2.0.0.2,以2.0.0.2在XML文件和两个manifest.json。我还在扩展的 index.html 文件中进行了更改。

我检查了appid,它在 XML 文件和 Chrome 中是一样的。

尽管单击“立即更新扩展程序”按钮大约 50 次,并等待 10 分钟,它仍然没有更新。

注意:我确实将内部 ip 192.168.1.108 别名为该站点托管在我的主机文件中,myinternal.fake但这在 chrome 和 firefox 中都有效,所以我认为这不是问题

更新 XML 文件(位于:https://myinternal.fake/updates/helloworld.xml

<?xml version='1.0' encoding='UTF-8'?> …
Run Code Online (Sandbox Code Playgroud)

google-chrome web-applications browser-extension google-chrome-extension google-chrome-app

5
推荐指数
1
解决办法
3877
查看次数

Chrome扩展程序:在页面上运行任何嵌入式脚本之前,先运行内容脚本

我正在尝试通过更改嵌入在视频的html观看页面中的player_api脚本内部的一些变量来更改YouTube播放器的某些行为。

我正在尝试修改的嵌入式脚本

问题是,无论我如何尝试,播放器的嵌入式脚本始终会在我的扩展程序对其进行修改之前运行。因此,保持玩家的行为相同。

我尝试将清单中的run_at属性设置为document-start,但是脚本根本没有运行

在更改脚本之前,我该怎么做才能停止执行该脚本?

PS:我尝试通过截获html调用并使用Charles Proxy编辑正文来更改脚本,然后按我的意愿更改了播放器的行为。因此,它知道,如果在正确的时间完成,它应该可以工作。

manifest.json

{
    "manifest_version": 2,
    "name": "YouFit For YouTube",
    "version": "1",
    "content_scripts": [{
        "js": ["content.js"],
        "matches": ["https://*.youtube.com/watch?*",
        "https://*.youtube.com/watch?*"],
    }],
    "browser_action": {
        "default_icon": "icon.png"
    }
}
Run Code Online (Sandbox Code Playgroud)

content.js

function changeBehavior() {
    var scriptElements = document.getElementsByTagName('script');
    for (var i = 14; i < scriptElements.length; i++) {
        var curScriptBody = scriptElements[i].outerHTML;
        // Find the script i'm interested in
        if (curScriptBody.indexOf("var ytplayer") != -1) {
            scriptElements[i].outerHTML = scriptElements[i].outerHTML.replace("<text>", "<replacement …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome browser-extension google-chrome-extension content-script

5
推荐指数
1
解决办法
984
查看次数

Chrome 扩展程序不尊重 browser_specific_settings

W3C 浏览器扩展社区组一直致力于研究不同平台(Chrome/Firefox/Edge/Opera/等)上浏览器扩展之间的兼容性。

他们有一个应该可以安全使用的密钥列表。一个重要的是browser_specific_settings,您可以为不同的浏览器指定专有设置,而不会将清单标记为格式错误。

我需要在这个键下为我的 Firefox 插件添加一个 ID,但是Chrome 不支持这个开箱即用的功能,如果安装了扩展程序会显示错误 -有没有办法告诉 Chrome 忽略这个键?(不要吓唬用户,当它没有被破坏时)

javascript json firefox-addon browser-extension google-chrome-extension

5
推荐指数
1
解决办法
716
查看次数

源地图(用于浏览器扩展)在 Chrome 75、Edge 77 中对我不起作用

我创建了一个用 .html 和 typescript 编写的示例浏览器扩展,它在 Chrome、Firefox 和 Edge(金丝雀)中运行良好。Typescript 编译器从 .ts 文件生成了 .js 和 .js.map 文件。

我想调试源代码,在那里我可以在打字稿代码中放置断点。我可以在 Firefox 中执行此操作,但不能在 Chrome 或 Edge 中执行。Chrome 和 Edge 注意到要添加 .map 和 .ts 文件,我只能从源加载它们,断点对我不起作用。

我读了过去的文章。

我在 manifest.json 中尝试了不同的设置。

如果我找到方法,我可以用示例扩展名附加整个 zip。扩展中的整个文件列表是:background.html、background.js、background.js.map、background.ts、base.js、base.js.map、base.ts、content.js、content.js.map , content.ts, manifest.json, popup.html, popup.js, popup.js.map, popup.ts, readme.md, tsconfig.json, tsext16.PNG, tsext19.PNG,

完整的 manifest.json 是

{
    "manifest_version": 2,

    "name": "Typescript Sourcemaps in Browser Extensions",
    "version": "1",
    "description": "Sourcemaps with Extensions",

    "icons": {
        "16": "tsext16.png"
    },
    "permissions": [
        "activeTab" …
Run Code Online (Sandbox Code Playgroud)

debugging browser-extension google-chrome-extension typescript

5
推荐指数
1
解决办法
516
查看次数

当第 3 方更改 DOM 时,防止我的 Elm 应用程序崩溃

我有一个 Elm 应用程序。不久前,当我使用 FontAwesome 图标时,我意识到我的应用程序在本地崩溃。我开始明白这是因为我选择了 SVG 图标,因此 FontAwesome 正在修改 DOM。这与 Elm 的 VDOM 机制相冲突。

Elm 崩溃,因为 FontAwesome 动态添加/删除 SVG 节点

这很容易修复——我迁移到使用伪元素的 FontAwesome 的 CSS 版本。最近一些用户抱怨生产中的应用程序冻结,他们展示了与我拥有的日志数据不匹配的状态屏幕截图。过了一段时间,我才意识到所有这些用户都让谷歌翻译自动为他们翻译了页面。谷歌翻译显然改变了 DOM,所以我对它让 Elm 崩溃并不感到惊讶。

如何防止我的 Elm 应用程序崩溃?如果第 3 方更改了 DOM,有没有办法收到通知?这样我什至可以通知用户他们有一个干扰应用程序的扩展程序。

browser-extension elm virtual-dom

5
推荐指数
1
解决办法
148
查看次数

Firefox 的多帐户容器扩展可以在 Chrome 或基于 chromium 的浏览器中复制吗?

我喜欢 Firefox 扩展多帐户容器。我想切换到勇敢的浏览器,但我找不到一个好的替代方案。由于 API 限制,该功能是否只能在 Firefox 中使用,或者是否可以通过扩展在基于 chromium 的浏览器中实现它?

如果我想创建这个扩展,我可以使其与 Firefox 的多帐户容器完全相同吗?我尝试将扩展加载到brave中,但由于我认为API的差异,它有很多错误。因此,做到这一点的唯一方法是针对 Chromium 对其进行编程。那可能吗?

我发现这个reddit线程https://www.reddit.com/r/brave_browser/comments/kw2cff/brave_alternative_to_firefoxs_multiaccount/它似乎表明容器是firefox独占的,而sessionbox是建议的替代方案。我尝试了 sessionbox,尽管它似乎仅限于单击扩展程序,然后选择一个会话来启动网站,而如果您将其设置为始终在容器中打开,则多帐户容器可以自动执行此操作。

是否存在此类扩展使用的扩展 API 功能,而基于 chromium 的浏览器没有?

也许这个功能可以不通过扩展来实现,而是直接通过浏览器来实现,因为brave是开源的,所以我应该可以添加这个功能或者分叉它并添加到那里。

[这个问题是我问的另一个问题的重复;试图使其更加清晰;我删除了另一个问题]

javascript firefox browser-extension brave brave-browser

5
推荐指数
1
解决办法
2604
查看次数

Chrome 浏览器扩展中的框架是什么?

在扩展 API 中,manifest.json 有一个参数,名为all_frames

选修的。默认为 false,表示仅匹配顶部框架。

如果指定 true,它将注入所有框架,即使该框架不是选项卡中最顶层的框架。每个框架都会独立检查 URL 要求,如果不满足 URL 要求,则不会注入子框架。

我熟悉帧每秒,但这似乎并不适用于此。“仅匹配顶部框架”是什么意思?“框架”和选项卡一样吗?

javascript browser-extension google-chrome-extension

5
推荐指数
1
解决办法
1562
查看次数