我希望我的 Chrome 扩展程序像这样运行:
用户单击该图标,就会显示硬编码的 URL“www.example.com”。它不会打开新选项卡,而是更新窗口。然后我想执行内容脚本并能够在更新的页面上提醒“正在工作”。
这是我到目前为止所得到的:
背景.js
chrome.browserAction.onClicked.addListener(function(activeTab)
{
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function
(tabs)
{
chrome.tabs.update({
url: "http://www.example.com/"
});
});
function test()
{
chrome.tabs.executeScript(null, {file: "myscript.js"});
}
chrome.tabs.onUpdated.addListener(function(tabid, changeinfo, tab) {
var url = tab.url;
if (url !== undefined && changeinfo.status == "complete") {
test();
}
});
});
Run Code Online (Sandbox Code Playgroud)
内容脚本
alert('working');
Run Code Online (Sandbox Code Playgroud)
结果很奇怪。当我单击该图标时,它会很好地显示 example.com,但有时警报有效,有时则无效。更奇怪的是,如果我双击它,它会更频繁地工作,但如果我多次单击它,警报就会累加起来,然后我会立即收到许多警报(我只想要一个)。
当我在 WebStorm (Angular) 中调试时,它会启动一个新的会话 Chrome 浏览器,但删除了所有扩展,但是我想将 Redux 扩展保留在调试会话中。是否可以?
我已经在我的manifest.json 中尝试了所有可能的CSP 设置,这是我当前的设置(我知道,非常开放且不安全)。
当我打开扩展程序的后台检查时,第一次重新加载后一切都很好,有时直到第五次,然后突然下面的错误开始涌入。
"content_security_policy": "default-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * 'unsafe-inline';"
Run Code Online (Sandbox Code Playgroud)
我仍然收到以下错误
拒绝加载脚本“ https://myapp-12345.firebaseio.com/.lp?start=t&ser=1234567&cb=15&v=5 ”,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe -评估'”。请注意,“script-src-elem”未明确设置,因此“script-src”用作后备。
我有什么遗漏的吗?
我正在开发google chrome 扩展:
chrome.windows.onRemoved.addListener(function callback)
Run Code Online (Sandbox Code Playgroud)

已弃用的 JavaScript 符号 - 在哪里?

chrome.windows.onRemoved.addListener(function(){});
Run Code Online (Sandbox Code Playgroud) 我正在使用 chrome 本地存储开发我的扩展,我想清除本地缓存,所以我使用了chrome.storage.local.clear(). 现在我想使用添加更多数据到本地存储chrome.storage.local.set(),但在传递对象时它返回未定义,即使它在清除之前确实工作。
这有效
chrome.storage.local.set({key: 'value'})
chrome.storage.local.get(['key'], result => {
console.log(result.key) // returns value
})
Run Code Online (Sandbox Code Playgroud)
但这并不
const obj = {
key: 'value'
}
chrome.storage.local.set(obj)
chrome.storage.local.get(['obj'], result => {
console.log(result.obj) // returns undefined
})
Run Code Online (Sandbox Code Playgroud)
我需要能够将一个对象传递给chrome.storage.local.set
我已经浏览过论坛,但所有解决方案都很旧,并且某些软件包已被弃用。
我想创建 chrome 扩展并使用 python 包,如 scipy、正则表达式和抓取库。
我是一名 python 开发人员,不懂 javascript。
有什么方法可以完全创建 chrome 扩展或大部分在 python 中使用?
我有一个使用 Angular 11 的 Chrome 扩展。我刚刚将其更新到 12,现在我得到了
拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-eval'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-...”)或随机数(“nonce-...”)。请注意,除非存在“unsafe-hashes”关键字,否则哈希不适用于事件处理程序、样式属性和 javascript: 导航。
所以,我想如果它曾经在 Angular 11 中工作,那么应该可以在 Angular 12 中工作。
所以,在我的清单中我已经有:
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'
Run Code Online (Sandbox Code Playgroud)
我尝试将其添加unsafe-hashes到角度的index.html
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self' 'unsafe-inline' 'unsafe-hashes' 'sha256-oFP6B0o0upf5CwDxtOuL0J68WAdmyZUBtL/g8VBQ9wE='; style-src 'self'; base-uri 'self';">
Run Code Online (Sandbox Code Playgroud)
但这并不能解决该错误(甚至更多错误)
这是一个公共存储库,可以在此处找到具有更新的分支
有什么建议如何解决这个问题吗?
我目前正在编写一个扩展,该扩展将通过在元素的 href 中添加 tel: 并用如果需要的话,锚标记。
在过去的三天里,我一直在努力让它适用于我们公司用于联系人的单页应用程序。但是每当我将扩展程序加载到浏览器中然后重新启动浏览器时,它首先不会应用我的内容脚本。访问后我首先需要刷新页面。
我正在使用以下文件:
清单.json:
{
"name": "testExtension",
"short_name": "testExtension",
"version": "1.0.0",
"manifest_version": 2,
"description": "Replace telephone numbers with clickable links.",
"author": "Ngelus",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"browser_action": {
"default_icon": "icons/icon48.png",
"default_title": "testExtension"
},
"default_locale": "en",
"permissions": [
"tabs",
"activeTab",
"<all_urls>",
"*://*.examplecontactsapp.de/*",
"storage",
"webRequest",
"webNavigation"
],
"content_scripts": [
{
"matches": [
"*://web.examplecontactsapp.de/contacts",
"*://web.examplecontactsapp.de/contacts*"
],
"js": ["src/inject/contentscript.js"]
}
],
"background": {
"scripts": ["src/bg/background.js"],
"persistent": true
}
}
Run Code Online (Sandbox Code Playgroud)
背景.js:
let currentUrl = '';
let …Run Code Online (Sandbox Code Playgroud) 目前正在制作一个 google chrome 扩展来可视化 svelte 组件,这只能用于开发模式。目前,我正在通过const svelteComponets = document.querySelectorAll(`[class^="svelte"]`);在内容脚本上使用来获取所有 svelte 组件,但它正在获取每个 svelte 元素。只获取组件的方法有哪些?
我目前正在开发一个 chrome 扩展,它允许我下载网页上使用过的字体文件。
\n当我解析该网站的字体时,我遇到了其中一个字体 URL 的奇怪边缘情况。
\n对于字体,Freddy规则@font-face如下所示:
@font-face {\nfont-family: \'Freddy\';\nsrc: url("//cdn.shopify.com/s/files/1/0548/8708/8184/t/24/assets/freddy_regular_2-webfont.woff?v=147712666987587936441646682936") format("woff") , \n url("//cdn.shopify.com/s/files/1/0548/8708/8184/t/24/assets/Freddy_Regular_2.ttf?v=64870238297763773461646682938") format("truetype") , \n url("//cdn.shopify.com/s/files/1/0548/8708/8184/t/24/assets/freddy_regular_2-webfont.woff2?v=66678714148373221751646682937") format("woff2"); /* Safari, Android, iOS */}\nRun Code Online (Sandbox Code Playgroud)\n这破坏了我的脚本,因为双斜杠使其成为无效的 URL(即,如果我按原样将其输入浏览器,则会出现错误)。
\n所以我想知道 \xe2\x80\x94 这个 URL 开头的双斜杠的目的是什么?如果它看起来是无效的 URL,那么它实际上如何检索字体?
\n