google-chrome-extension 相关问题

Google Chrome网络浏览器的扩展开发。您可以使用HTML,JavaScript和CSS等Web技术编写它们。

为什么 chrome 将一些支持网站重定向到 https://doublestat.info/c

如果这是错误的论坛,请原谅我。 我有一个 Chrome 安装,它将其他一些网站的“支持”页面重定向到此网址 https://doublestat.info/c 没有出现...

回答 1 投票 0

使用 Vite+React 在 Chrome 扩展上创建新标签

我正在使用 Vite + React 构建一个 chrome 扩展,一切都工作正常,直到我遇到了一个我不知道会遇到的问题。理想情况下,我希望用户单击页面上的按钮...

回答 1 投票 0

在 Chrome 扩展程序中使用 Google Calendar API 获取日历列表时出现 403 错误

我正在开发一个与 Google Calendar API 交互的 Chrome 扩展程序。我已经成功实现了一个获取当前和即将发生的事件的函数,但我遇到了 403 错误...

回答 1 投票 0

Google Chrome 扩展程序中的网页抓取(JavaScript + Chrome API)

使用 JavaScript 和其他可用技术从 Google Chrome 扩展程序中执行当前未打开的选项卡的网页抓取的最佳选项是什么。其他 JavaScript-

回答 8 投票 0

为什么我可以从 Chrome Apollo 扩展程序发送 GraphQL 请求,但不能使用我自己的扩展程序发送 GraphQL 请求?

我正在开发一个 chrome 扩展,它将现有的 GraphQL 查询发送到站点。 使用 Apollo chrome 扩展进行测试,我成功地正确发送了我的查询。 但是当我通过脚本执行此操作时,我...

回答 1 投票 0

chrome 扩展上的“不安全评估”

我正在尝试运行以下命令: chrome.tabs.onCreated.addListener(函数(选项卡){ if (tab.url.indexOf(".salesforce.com/") != -1 || tab.url.indexOf(".force.com/") != -1) { chrome.tabs.

回答 5 投票 0

访问扩展的“后台”脚本的控制台和开发工具

我刚刚开始使用 Google Chrome 扩展,我似乎无法从后台 js 登录到控制台。当发生错误时(例如,由于语法错误),我找不到任何错误混乱......

回答 10 投票 0

在 JavaScript 中获取点击的字符?

我正在尝试编写一个 chrome 扩展,当您(例如)按住 ctrl+单击一个字符时,它会生成一个简单的弹出窗口(这是一个帮助记住日语汉字关键字的简单工具)。 这就是……

回答 1 投票 0

将网页连接到 USB 智能卡读卡器

我需要一个可以访问连接的智能卡读卡器的网页,实现此目的的最佳方法是什么? WebUSB 禁止智能卡读卡器,唯一的解决方法是弄乱驱动程序,但这会...

回答 1 投票 0

是否可以在浏览器扩展的上下文中在移动状态下创建新窗口

我正在开发一个浏览器扩展(专门针对 Firefox),其中一个功能是该扩展应该在新的浏览器窗口中打开一个链接,以便预览目标页面。窗户

回答 1 投票 0

远程 Socket.io 连接无法通过清单 v3 扩展进行工作

我已经使用nodejs、express和socket.io设置了一个小型服务器,并且有一个用于chrome扩展的后台脚本,加载时应该连接到socket.io服务器,但不会

回答 2 投票 0

在不同窗口内设置 Chrome 标签页地址?

我有以下 Chrome 扩展代码,它允许我在当前选项卡和上一个选项卡之间切换: 函数 switchTabs() { 让 prevTab = tabHistory[currentTabId].prev; 如果(

回答 1 投票 0

“未捕获类型错误:无法读取未定义的属性(读取‘insertCSS’)”Chrome 扩展清单 3

我正在制作一个 chrome 扩展,我想更改选项卡的 css,但出现此错误: 未捕获的类型错误:无法读取未定义的属性(读取“insertCSS”) 这是我的脚本: 申请btn。

回答 1 投票 0

Selenium:打开扩展的弹出窗口

我正在尝试使用 Selenium 为我的扩展编写 E2E 测试。对于我的测试,我需要打开扩展程序的弹出页面 - 就好像用户单击扩展程序的徽标(位于右下角...

回答 2 投票 0

我可以强制 Chrome 窗口名称保留吗?

我针对不同的用户配置文件同时使用许多不同的 Chrome 窗口。我每天使用名称窗口功能来快速识别我试图从 Dock 访问的用户。 我经常会

回答 1 投票 0

Chrome 扩展程序可规避空闲注销

一些银行和金融网站会在认为您空闲时自动注销。有没有办法让我在页面中注入一个脚本来假装我不闲着? 我试过这个: setInterval(() =>

回答 1 投票 0

Puppeteer chrome 获得活动/可见选项卡

在 Chrome 扩展中,您可以使用下面的命令来查找窗口中的活动选项卡 chrome.tabs.query({ 当前窗口:真, 主动:真实, } 我有一个下面的代码,它连接...

回答 4 投票 0

Select2 Ajax 请求授权未发送

尝试向需要身份验证令牌的端点发出获取请求。但每当发出请求时,它都会返回 401 错误(“需要授权标头”)。令牌被检索

回答 2 投票 0

动态加载内容脚本(chrome扩展)

我有一个 chrome 扩展,其中有 2 个由清单注入的内容脚本和一个后台脚本。 { “清单版本”:2, “名称”:“测试”, “权限”:[ “选项卡”,“ 我有一个 chrome 扩展,其中有 2 个由清单注入的内容脚本和一个后台脚本。 { "manifest_version": 2, "name": "Test", "permissions": [ "tabs", "<all_urls>", "activeTab", "storage" ], "content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "js": [ "content/autofill/lib_generic.js", "content/autofill/lib.js"], "run_at": "document_end" } ], "web_accessible_resources": [ "content/specific_scripts/*" ], "background": { "scripts": ["background.js"], "persistent": false } } lib_generic.js 包含一个名为 apply_forms(...) 的函数(其描述并不重要)。该函数是从 lib.js 文件调用的。但此过程不适用于多个页面,因此对于每个这样的页面,我都有一个特殊的脚本 - 也只有一个名为 apply_forms(...) 的函数。 我有一个函数,它将当前域作为输入并返回所需特定脚本的名称,或者如果应使用通用则返回false。 文件太多,逻辑也更复杂,所以我不能只在 (url, script) 指令中列出所有 "content_scripts" 对(我也不想将所有特定文件作为内容脚本注入)。 我在后台尝试过类似的操作(请注意,这仅用于演示): var url = ""; //url of current tab chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { if(changeInfo.status == "complete") { var filename = getSpecificFilename(url); chrome.tabs.executeScript(tabId, {file: filename}, function() { //script injected }); } }); 注意:getSpecificFilename(...) 将始终返回一个名称 但我在第 5 行得到 Unchecked runtime.lastError while running tabs.executeScript: Cannot access a chrome:// URL。 有人可以帮我吗?这是动态“覆盖”函数定义的好方法,还是我应该采用不同的方式(然后选择哪一种)。 谢谢。 这可能意味着您在扩展/内部页面上收到 onUpdated 事件(弹出?选项页面?分离的开发工具?)。 一个选项是按 URL 过滤: chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { if(changeInfo.status == "complete") { if(!tab.url.match(/^http/)) { return; } // Wrong scheme var filename = getSpecificFilename(url); chrome.tabs.executeScript(tabId, {file: filename}, function() { //script injected }); } }); 另一个(可能更好)的选择是让您的内容脚本请求此注入: // content script chrome.runtime.sendMessage({injectSpecific : true}, function(response) { // Script injected, we can proceed if(response.done) { apply_forms(/*...*/); } else { /* error handling */ } }); // background script chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) { if(message.injectSpecific){ var filename = getSpecificFilename(sender.url); chrome.tabs.executeScript(sender.tab.id, {file: filename}, function() { sendResponse({ done: true }); }); return true; // Required for async sendResponse() } }); 这样您就知道内容脚本被注入并启动了。 您已经在每个页面上都有内容脚本,您可以使用它们通过 import(chrome.runtime.getURL('other.js)) 加载其他脚本。 如果您使用 webpack 或 Parcel,这更容易处理,因为它们还会创建该 other.js 文件: https://github.com/awesome-webextension/webpack-target-webextension https://parceljs.org/recipes/web-extension/

回答 2 投票 0

有没有办法让 browser.tabs.sendMessage 到所有选项卡?

目前,我的后台脚本中有这个: 功能禁用(选项卡){ 对于 (var i = 0; i < tabs.length; ++i) { browser.tabs.sendMessage(tabs[i].id, { command: "Disable...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.