gpt4 book ai didi

javascript - Chrome 扩展程序 : Refused to execute inline script, 但不存在内联脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:10:33 24 4
gpt4 key购买 nike

我正在尝试使用 reactjs 构建一个非常基本的 chrome 扩展。但是,我收到以下错误:

Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval'". Either the 'unsafe-inline' keyword, a hash ('sha256-irwQGzGiWtpl6jTh4akRDdUUXCrtjkPABk5rinXZ5yw='), or a nonce ('nonce-...') is required to enable inline execution.

考虑到我似乎没有任何内联脚本,我不明白这是从哪里来的。

newtab.html:

<!DOCTYPE html>
<html>
<head>
<title>New Tab</title>
<script src="react.js"></script>
<script src="react-dom.js"></script>
<script src="babel.js"></script>
<script type="text/jsx" src="test.jsx"></script>
</head>
<body>
<div id='root'></div>
</body>
</html>

测试.jsx:

import React from "react";
import ReactDOM from "react-dom";

class Hello extends React.PureComponent {
render() {
return (
<div>
<h1>Hello!</h1>
</div>
);
}
}

const element = <Hello />;
ReactDOM.render(
element,
document.getElementById('root')
);

list .json:

{
"manifest_version": 2,

"name": "SuperBasicReact",
"description": "Just trying to make this work",
"version": "0.1",

"chrome_url_overrides": {
"newtab": "newtab.html"
},

"browser_action": {
"default_title": "SuperBasicReact"
},

"permissions": [
"http://*/*",
"https://*/*"
],

"content_scripts": [{
"matches": ["http://*/", "https://*/"],
"js": ["test.jsx", "babel.js"]
}],

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'; default-src 'self'"


}

我使用的是 chrome 版本 65.0.3325.162。

我们将不胜感激。

编辑:

我看过"Refused to execute inline script" in ReactJS Chrome Extension even though there are no inline scripts ,但是,我实际上并没有在该链接中看到解决方案。

最佳答案

问题来自浏览器脚本中 Babel 的工作方式。由于 CSP 对扩展的限制,您必须在本地使用 Babel 转译 jsx 代码,并且仅将转译后的 (js) 文件添加到您的 html 中。

您可以从命令行运行 Babel。请查看相关guide here .对于后期开发,可以考虑使用带有 babelify 插件的 Browserify 等工具。参见 usage examples here .

关于javascript - Chrome 扩展程序 : Refused to execute inline script, 但不存在内联脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49409916/

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