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

In firefox, how can I run javascript in local file e.g., file:///C:/play/my.html

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

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

内容安全策略:该页面的设置阻止了内联资源的加载(“script-src”)。

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

<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">

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

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

注意:在 Chrome (v76.0.3809.100) 中,这个文件可以正常工作,所以我现在可以解决这个问题。

<!DOCTYPE html>
<html>
<head>
    <title>My Async Test</title>
    <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">
    <meta charset="UTF-8" />
</head>
<body>
<script>
function clickMe() {
  f().then(alert);
}
async function f() {
  return 1;
}
</script>
  Just testing
  <button type="button" onclick="clickMe()">Run Async Function</button>
</body>

</html>

搜索

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

其他有用的结果是:

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

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

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

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

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