在 Firefox 中,如何在本地文件中运行 javascript,例如 file:///C:/play/my.html

Pat*_*atS 4 html javascript firefox content-security-policy

我想尝试使用 Javascript,并创建了一个在 Firefox (68.0.1) 中打开的文件file:///C:/play/my.html。该文件位于 JSFiddle 上:https://jsfiddle.net/PatS2265/7r4j6ewa/(但代码可以在 JSFiddle 中运行)。

\n\n

在 Firefox 中,当我打开此文件时,控制台中出现以下错误:

\n\n

内容安全策略:页面\xe2\x80\x99s 设置阻止加载内联资源 (\xe2\x80\x9cscript-src\xe2\x80\x9d)。

\n\n

我查找了如何解决这个问题并尝试添加:

\n\n
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src \'self\' \'unsafe-inline\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\' http://www.google.com">\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这并没有解决问题。该文件如下所示(我尝试添加 Content-Security-Policy 元标记失败。

\n\n

内容安全策略的正确语法是什么?

\n\n

注意:在 Chrome (v76.0.3809.100) 中,此文件刚刚起作用,因此我现在可以解决这个问题。

\n\n
<!DOCTYPE html>\n<html>\n<head>\n    <title>My Async Test</title>\n    <meta http-equiv="Content-Security-Policy" content="default-src *; style-src \'self\' \'unsafe-inline\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\' http://www.google.com">\n    <meta charset="UTF-8" />\n</head>\n<body>\n<script>\nfunction clickMe() {\n  f().then(alert);\n}\nasync function f() {\n  return 1;\n}\n</script>\n  Just testing\n  <button type="button" onclick="clickMe()">Run Async Function</button>\n</body>\n\n</html>\n
Run Code Online (Sandbox Code Playgroud)\n\n

搜索次数

\n\n

我搜索了如何解决此问题,并找到了禁用内容安全策略的解决方案。

\n\n
    \n
  • 禁用Firefox 中的内容安全性。这对我有用,但相当严厉,所以我想知道如何在我的文件中做到这一点。
  • \n
\n\n

其他有用的结果是:

\n\n\n\n

我刚刚在 StackOverflow 中找到了内容安全策略的标签,所以我现在就开始搜索。

\n

Pat*_*atS 6

好吧,我觉得有点尴尬,因为我没有早点得到这个。我必须感谢@Nickolay 的评论,他没有看到这个问题,并询问它是否可以是一个附加组件,或者我是否在新的配置文件中尝试过这个,所以我检查了两者。

我使用about:profiles并单击创建了一个干净的配置文件Create a New Profile,当我在该配置文件中运行时,它起作用了!

接下来我意识到我启用了附加NoScript,这阻止了 Javascript 在本地文件 ( ) 上运行file:///C:/

在NoScript中启用本地文件后,问题就消失了。
Doh(用手敲打额头)。