标签: google-chrome-extension

如何使用Background.js更新选项卡然后执行内容脚本?

我希望我的 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,但有时警报有效,有时则无效。更奇怪的是,如果我双击它,它会更频繁地工作,但如果我多次单击它,警报就会累加起来,然后我会立即收到许多警报(我只想要一个)。

javascript google-chrome-extension

0
推荐指数
1
解决办法
1908
查看次数

在 WebStorm 中调试 JS 时保留 Chrome 扩展

当我在 WebStorm (Angular) 中调试时,它会启动一个新的会话 Chrome 浏览器,但删除了所有扩展,但是我想将 Redux 扩展保留在调试会话中。是否可以?

google-chrome-extension webstorm

0
推荐指数
1
解决办法
1053
查看次数

Chrome 扩展内容安全策略在设置为 * 时抛出错误

我已经在我的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”用作后备。

我尝试过的

  • 当我更改manifest.json时删除chrome扩展

我有什么遗漏的吗?

javascript google-chrome-extension content-security-policy

0
推荐指数
1
解决办法
8421
查看次数

chrome.windows.onRemoved.addListener 已弃用?

我正在开发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)

javascript google-chrome-extension

0
推荐指数
1
解决办法
722
查看次数

无法将对象传递到 Chrome 本地存储

我正在使用 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

javascript google-chrome-extension

0
推荐指数
1
解决办法
686
查看次数

如何在 python 中制作 chrome 扩展?

我已经浏览过论坛,但所有解决方案都很旧,并且某些软件包已被弃用。

我想创建 chrome 扩展并使用 python 包,如 scipy、正则表达式和抓取库。

我是一名 python 开发人员,不懂 javascript。

有什么方法可以完全创建 chrome 扩展或大部分在 python 中使用?

python google-chrome-extension google-chrome-devtools

0
推荐指数
1
解决办法
4255
查看次数

更新到 Angular 12 后,Chrome 扩展中出现 CSP 不安全评估错误

我有一个使用 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)

但这并不能解决该错误(甚至更多错误)

这是一个公共存储库,可以在此处找到具有更新的分支

有什么建议如何解决这个问题吗?

google-chrome-extension content-security-policy angular

0
推荐指数
1
解决办法
3907
查看次数

如何编写将内容脚本应用于单页应用程序的 Chrome 扩展?

我目前正在编写一个扩展,该扩展将通过在元素的 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)

javascript google-chrome-extension single-page-application

0
推荐指数
1
解决办法
1543
查看次数

如何从 DOM 中检测 svelte 组件?

目前正在制作一个 google chrome 扩展来可视化 svelte 组件,这只能用于开发模式。目前,我正在通过const svelteComponets = document.querySelectorAll(`[class^="svelte"]`);在内容脚本上使用来获取所有 svelte 组件,但它正在获取每个 svelte 元素。只获取组件的方法有哪些?

dom element google-chrome-extension svelte svelte-component

0
推荐指数
1
解决办法
1394
查看次数

URL 开头有双斜杠?

我目前正在开发一个 chrome 扩展,它允许我下载网页上使用过的字体文件。

\n

当我解析该网站的字体时,我遇到了其中一个字体 URL 的奇怪边缘情况。

\n

对于字体,Freddy规则@font-face如下所示:

\n
@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 */}\n
Run Code Online (Sandbox Code Playgroud)\n

这破坏了我的脚本,因为双斜杠使其成为无效的 URL(即,如果我按原样将其输入浏览器,则会出现错误)。

\n

所以我想知道 \xe2\x80\x94 这个 URL 开头的双斜杠的目的是什么?如果它看起来是无效的 URL,那么它实际上如何检索字体?

\n

javascript css url font-face google-chrome-extension

0
推荐指数
1
解决办法
946
查看次数