标签: browser-extension

浏览器扩展和本机应用程序之间的进程间通信

如何在浏览器扩展和本机应用程序之间建立进程间通信?是否有任何跨平台(Linux和Mac OS X)和跨浏览器解决方案(Firefox,Chrome,Safari)?

我想到的唯一想法是使用本机Web技术,即在本机应用程序中嵌入HTTP服务器并使用XmlHttpRequest或WebSockets.然而,这听起来像笨重的过度杀戮一些问题(例如安全性).还有更好的选择吗?

ipc firefox-addon browser-extension google-chrome-extension safari-extension

7
推荐指数
1
解决办法
2308
查看次数

有没有办法在安装时自动固定 Chrome 扩展程序?

我正在开发一个 chrome 扩展。最近我发现安装 Chrome 扩展后,它没有显示在工具栏中。有一个扩展工具栏图标。当我单击该图标时,它会显示所有已安装的扩展,然后我需要固定要在工具栏中显示的那些扩展。有什么方法可以自动固定我的分机吗?这样扩展图标就会自动在工具栏中可见。因为大多数用户抱怨扩展名没有显示。在我的扩展上,当用户单击工具栏图标时,它会打开一个弹出窗口。

google-chrome browser-extension google-chrome-extension

7
推荐指数
1
解决办法
4193
查看次数

Safari 扩展 iOS - 从应用程序到扩展程序的消息传递

在 iOS 15 中,Apple 也可以为 iOS 创建 Safari 扩展。我目前正在将现有的 macOS Safari 扩展引入 iOS。我的问题是,似乎没有选项可以将消息从主机应用程序发送到扩展程序。可以通过该 beginRequest(with:)功能应答来自分机的请求。但是,我主动需要在用户操作后向扩展程序发送消息。dispatchMessage(withName:toExtensionWithIdentifier:userInfo:completionHandler:)在 macOS 中,这可以通过此处描述的函数来完成: https ://developer.apple.com/documentation/safariservices/safari_web_extensions/messaging_ Between_the_app_and_javascript_in_a_safari_web_extension 。遗憾的是,此功能不适用于 iOS。

非常感谢任何解决这个问题的想法。

safari xcode browser-extension ios swift

7
推荐指数
1
解决办法
1067
查看次数

如何使用Rapportive等Gmail插件工作?

我知道Gmail有上下文和侧边栏小工具,但是如何使用诸如Rapportive之类的浏览器扩展工作?他们是否将按钮/显示器注入浏览器页面?如果是这样,如果谷歌决定改变他们布局页面的方式,浏览器扩展是否会中断?

gmail firefox-addon browser-extension google-chrome-extension

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

强制Chrome根据Content-Type标头打开某些网址

我试图寻找一个Chrome扩展程序来执行此操作,但找不到它.基本上,我想点击一个返回application/rdf + xml或application/xml的内容类型标题的Web服务,并让Chrome自动显示内联内容.我有XML Tree扩展,它可以很好地显示XML,但默认情况下Chrome会下载文件,除非它们有一定的扩展名.

我的问题是:有没有办法强制Chrome根据服务器返回的Content-Type内联打开某些内容?Chrome中的扩展或直接支持对我来说没问题.如果一个不存在,我会调查开发一个.

content-type google-chrome browser-extension

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

开发Internet Explorer,浏览器助手对象扩展?

在此输入图像描述

1)我试图在C#中制作一个简单的BHO,就像这里已经回答的那样:https://stackoverflow.com/a/5740004/285594

2)但不幸的是,他们都尝试了IE11,其中一些使它工作,一些也失败了

3)在按照该答案中提到的所有内容之后,我还购买了官方代码符号,但它根本不适用于IE11 Windows 7 64位.

您可以下载我准备好的Visual Studio 2013版本:其中包含IE11的所有源代码和详细信息:

https://www.dropbox.com/s/60kg212vkjb7yud/ClassLibrary2.rar

问:任何人都可以建议/建议/帮助我如何打造这个BHO的世界?

我也尝试了其他代码来自codeproject,但仍然没有一个我能够工作,尝试了4周后,我迷路了,请告诉我的ClassLibrary2.rar有什么问题,这不是浏览文本"浏览器" ?

我完全迷了,请指教.

编辑:

IEAddon.cs

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Microsoft.Win32;
using mshtml;
using SHDocVw;

namespace InternetExplorerExtension
{
  [ComVisible(true)]
  [ClassInterface(ClassInterfaceType.None)]
  [Guid("D40C654D-7C51-4EB3-95B2-1E23905C2A2D")]
  [ProgId("MyBHO.WordHighlighter")]
  public class WordHighlighterBHO : IObjectWithSite, IOleCommandTarget
  {
    const string DefaultTextToHighlight = "browser";

    IWebBrowser2 browser;
    private object site;

    #region Highlight Text
    void OnDocumentComplete(object pDisp, ref object URL)
    {
      try
      {

        // This will prevent this method being executed more than once. …
Run Code Online (Sandbox Code Playgroud)

c# c++ internet-explorer atl browser-extension

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

未识别404未找到的页面

我们得到了很多404页面找不到错误,我们找不到相同模式的原因.我们没有对此404页面进行任何重定向,或者我们没有为这个损坏的页面链接提供链接.

这种错误的共同点是用相同的模式部分操纵的; 删除第一段网址.例;

这是真正的URL;

site.com/category/news/title-of-the-content

site.com/another-category/news/another-title-of-the-content

...

这就是我们得到的404;

site.com/category/news/

site.com/another-category/news/

...

我们是404错误的收集用户代理,在这里它们是;

Mozilla/5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident/5.0)

Mozilla/4.0(兼容; MSIE 7.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; InfoPath.2)

Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.2; .NET4.0C ;. NET4.0E)

因此,此错误仅发生在Internet Explorer中.

我们认为这是因为一些IE插件但无法找到.有人有同样的问题吗?或者我们可以对这种情况做些什么?

提前致谢.

奖金: 在此输入图像描述

browser url internet-explorer browser-extension http-status-code-404

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

如何在浏览器扩展上下文中通过 TypeScript 访问全局变量(如果可能的话,部分键入)

1. 问题

\n

我正在尝试通过 TypeScript 从网站 \xe2\x80\x94随机 OGS 示例\xe2\x80\x94 访问全局变量,以便从当前棋盘游戏获取数据。

\n

我对 TS 还很陌生,所以我也不确定如何输入这个变量。全局变量本身实际上最初是在 TS 中创建的,但它具有无数的方法和属性,因为有如此多的功能。因此,如果我要自己输入它,我宁愿只输入我需要的内容(如果可能的话),或者以某种方式从某个包中导入它 \xe2\x80\x94 我不认为作者已在任何地方公开发表。

\n

与此同时,还有一个问题是全局变量是否默认可用于浏览器扩展,但情况可能并非如此

\n

2.我一直在尝试的

\n

所以,我一直在尝试(我已经尝试了一百万种其他变体......)做的是类似 * \xe2\x80\x94 inside 的事情content.ts,它在OGS域 \xe2\x80\内部运行x94:

\n
interface Goban {\n  bounded_height: number;\n}\n\ndeclare var goban: Goban;\n\ngoban = window["global_goban"];\n\nconsole.log(goban.bounded_height.toString());\n
Run Code Online (Sandbox Code Playgroud)\n

我通常得到的错误是:

\n
Uncaught ReferenceError: goban is not defined\n
Run Code Online (Sandbox Code Playgroud)\n

那么我错过了什么?我必须创建声明文件 ( .d.ts) 吗?处理这种从第三方代码导入全局变量的正确方法是什么?

\n

*:根据您尝试处理对象的方式window,您可能必须添加"suppressImplicitAnyIndexErrors": true到您的对象中tsconfig.json,以便 TS 不会静态地抱怨。

\n

3. 如何完全重现我的问题

\n …

javascript browser-extension typescript

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

当 addEventListener 不起作用时,在事件触发之前拦截事件

我一直在维护一个用 React 编写的小项目。它是一个浏览器扩展,为 Facebook Messenger 添加了类似 Slack 的表情符号支持。由于 Facebook 偶尔会改变一些东西,我需要对浏览器扩展进行新的更改,以便它们像以前一样工作。

Facebook 使用 a<div>并将contenteditable属性设置为 true。从我记事起,他们就一直这样做。然而,他们改变了一些东西,因为我曾经能够做到:

document.querySelector("div[contenteditable=true]").addEventListener(e => {
    if(e.key == "Enter" && isActive) { //isActive means if the emoji picker is visible or not
        e.preventDefault();
        e.stopPropagation();
        selectEmoji();
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,即使该元素存在,该事件也不再触发。除了 Enter 之外,每个键都会触发它。所以我开始用 MutationObserver 进行挖掘,令我惊讶的是,我注意到了这一点:

removedNodes: NodeList[<div with contenteditable=true>]
addedNodes: NodeList[NEW <div with contenteditable=true>]
Run Code Online (Sandbox Code Playgroud)

因此,一旦我按下 Enter 键,Facebook 就会发送消息,然后用新的聊天框元素替换整个“聊天框”元素(contenteditable=true 的 div)。

我不明白的是,当我按 Enter 键时,我的 addEventListener 如何没有触发。即使我做了这样的事情,它也不会起作用:

setInterval(() => {
    var chatbox = document.querySelector("div[contenteditable=true]");
    chatbox.addEventListener("keydown", () => ........ });
}, …
Run Code Online (Sandbox Code Playgroud)

javascript browser-extension dom-events

6
推荐指数
0
解决办法
498
查看次数

知道如何使用 nuxt 制作浏览器扩展吗?

我第一次在这里问一些事情,所以我希望我足够清楚!(不要评判我......)

我需要构建一个 Web 扩展,但由于与我公司的工作方式相关的许多原因,我需要使用 nuxt 来完成它,我正在查看堆栈溢出、medium 和基本上所有互联网,就像没有人这样做过一样,有理由吗?有人可以帮我做吗?

顺便说一句,我的第一个想法是扩展 nuxt.config.js 中的构建配置,但我对 webpack 也不太了解,所以我想这会很困难,我什至不知道这是否可能,或者这是否是正确的方法做吧。

欢迎任何帮助!祝你今天过得愉快。

browser-extension google-chrome-extension web vue.js nuxt.js

6
推荐指数
0
解决办法
480
查看次数