content-script 相关问题

内容脚本是JavaScript文件,由浏览器扩展或附加组件使用。它们是可以与当前网页的文档上下文交互的扩展的一部分。这主要适用于Firefox或Chrome扩展程序。

未选中的runtime.lastError:消息端口在收到响应之前关闭。我该如何解决?

我有这个问题。我看到这个问题并尝试了它的解决方案,但它似乎不起作用。错误消失了,但代码没有执行它应该执行的操作。 所以,基本上,我有一个背景

回答 2 投票 0

Chrome 扩展 API:后台页面上的 chrome.tabs.captureVisibleTab 到内容脚本

我的总体目标是使用以下方法通过后台页面截取屏幕截图: http://developer.chrome.com/extensions/tabs.html#method-captureVisibleTab 并将其传递给内容脚本,以便我可以使用...

回答 1 投票 0

从后台脚本发送到内容脚本的消息重复

我正在编写一个谷歌浏览器扩展程序,可以单击链接和按钮。单击重定向按钮/链接并且页面发生更改后,我必须使用后台脚本撤销扩展...

回答 2 投票 0

后台脚本:错误:无法建立连接。接收端不存在

我正在尝试将消息从后台脚本发送到我的 chrome 扩展程序中的内容脚本。但看起来消息是在加载内容脚本之前发送的? 这是我遇到的错误...

回答 3 投票 0

带有“假”导航的 SPA 网站上特定 URL 的内容脚本

目前我正在测试这段代码。我的目的是使用内容脚本抓取一些数据 这是我在后台文件中的内容 chrome.action.onClicked.addListener( (tab) => { // 铬。

回答 1 投票 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

WebExtensions:您可以访问网页获取的 JSON 对象吗

网页加载后有没有办法访问网页获取的 JSON 对象? 我知道我可以使用 webRequest api 来获取 JSON 资源的 url 并获取它...

回答 1 投票 0

在不单击按钮的情况下调用 onclick 函数

我有一个 chrome 扩展的内容脚本,其中包含一个函数,该函数应该仅在单击特定按钮时触发。但我注意到,当按钮...

回答 1 投票 0

升级或安装后 Chrome 扩展内容脚本重新注入

安装或升级我正在处理的 Chrome 扩展程序后,不会重新注入内容脚本(在清单中指定),因此需要刷新页面才能使扩展程序正常工作。是...

回答 7 投票 0

如何阻止/删除内容脚本中的 Youtube 共享、下载按钮,就像 uBlock 的做法一样?

使用下面的代码删除上述按钮是可行的,但它不会以在子菜单中显示其他按钮的方式更新 UI。其他按钮仍然隐藏在子菜单中,而一个......

回答 1 投票 0

Chrome:获取活动内容脚本选项卡的 URL

我有一个内容脚本,当用户连接到“*://www.youtube.com/*”时运行。我需要知道 URL 何时更改,因为 YouTube 不会打开新的“页面”,可以这么说,当您单击 l...

回答 2 投票 0

如何直接在 Chrome 中编辑 chrome 扩展内容脚本源文件

我知道我们可以直接在chrome中编辑源代码, 我们可以在chrome中编辑扩展background.js, 就像:https://www.sitepoint.com/edit-source-files-in-chrome/ 但我该如何编辑

回答 1 投票 0

为什么代码不等待监听器完成?

我试图等待侦听器侦听所有消息,然后再使用await 转到console.log("Done"),但它没有发生。我缺少什么。 const f = async (leftPaneRow...

回答 1 投票 0

Chrome 扩展内容脚本 javascript - run_at document_end 无法正常工作

作为测试,我正在创建一个 chrome 扩展,它隐藏 Facebook 右侧的“新闻”部分和右侧广告。还将背景颜色更改为黑色。 我现在的问题是...

回答 1 投票 0

是否可以从外部脚本将事件监听器绑定到shadow dom内的元素?

我有一个 chrome 扩展,它将一个 Shadow dom 元素注入到页面中以保持 css 分离。但我需要从内容脚本将 onclick 绑定到 Shadow dom 中的某些元素,因为我......

回答 3 投票 0

在 Chrome 扩展中,内容脚本在初始加载时不会从后台接收消息

在我的 Chrome 扩展中,内容脚本应该在页面加载时从后台脚本接收消息。但是当我打开一个新选项卡并输入 URL https://example.com 时,它没有收到...

回答 1 投票 0

尝试自动化网站登录,使用 Chrome 扩展 MV3 和 vanilla Javascript 来显示带有占位符的用户名/密码登录

我在这个个人项目中通过在 MV3 下开发 Chrome 扩展来自动化跨两个不同网站的相对复杂的工作流程;这包括网站交互以及 Dropbox ...

回答 1 投票 0

如何使用浮动 UI 作为 Chrome 扩展内容脚本?

目标是使用 Chrome 扩展将工具提示插入网页上的特定元素。 我尝试使用 ESM 版本的浮动 UI 作为内容脚本,但收到此错误: 未被捕获

回答 1 投票 0

有没有一种方法可以使用内容脚本普遍检测 Cookie 横幅/弹出窗口

正如标题所示,我正在研究使用浏览器扩展中的内容脚本来检测网页上的 cookie 模式/弹出窗口/横幅的方法。使用 wi 捕捉弹出窗口并不是非常困难...

回答 0 投票 0

如何使用扩展程序中的内容脚本根据条件阻止按下按键时网站的行为事件?

我有这个扩展,它允许用户制作笔记列表,它开始使用内容脚本观察聚焦元素的用户输入,如果用户激活其中的选项,它将停止...

回答 0 投票 0

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