gpt4 book ai didi

javascript - 从 Chrome 扩展内容脚本创建 Web Worker

转载 作者:可可西里 更新时间:2023-11-01 02:20:28 25 4
gpt4 key购买 nike

我正在尝试从我的扩展程序的内容脚本创建一个 Web Worker,但它被 SecurityError(同源策略)阻止了。执行此操作的最佳方法是什么?

来 self 的内容脚本:

var workerURL = chrome.extension.getURL("js/searchWorker.js");
var lunrWorker = new Worker(workerURL);

来自 list :

"content_scripts": [
{
"matches": ["http://localhost:8000/*"],
"js": ["js/jquery.min.js", "js/jquery.highlight.js", "js/index.js"],
"css": ["css/bootstrap.css", "css/styles.css"]
}
]

我也试过在我的 list 中设置它,但它没有帮助:

"content_security_policy": "default-src 'none'; style-src 'self'; script-src 'self';",

(旁注:CSS 没有被注入(inject)到页面中,我不确定这是同一问题还是无关的症状)

最佳答案

http://crbug.com/357664是关于无法作为 web worker 加载扩展脚本的错误报告。

解决此问题的方法是使用 XMLHttpRequest 加载工作脚本,然后 load the worker from a string .当我过去遇到这个问题时,我创建了一个包装器,它透明地修改了 Worker 构造函数,因此您可以使用 new Worker(chrome.runtime.getURL('worker.js')) 没有任何问题。

参见 patch-worker.js ( documentation ) 用于实现先前的想法。

patch-worker.js 有一些限制(例如 importScripts 没有按预期工作),主要是因为它没有在 中运行chrome-extension:-来源。为了解决这些问题,我创建了另一个使用 iframe 来创建 Worker 的库。参见 worker_proxy获取源代码和文档。

关于javascript - 从 Chrome 扩展内容脚本创建 Web Worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com