我按照这些步骤编写了一个演示HTML。 这是https://github.com/commonmark/commonmark.js#commonmarkjs的自述文件中的步骤:

对于客户端使用,您可以make dist生成一个独立的JavaScript文件js/dist/commonmark.js ,适合链接到网页,或者从https://raw.githubusercontent.com/jgm/获取最新的commonmark.js / master / dist / commonmark.jsbower install commonmark

这是我的演示HTML。

<!DOCTYPE html>
<html>
   <head>
      <meta charset="UTF-8">
      <script src="https://raw.githubusercontent.com/jgm/commonmark.js/master/dist/commonmark.js"></script>
      <script>
         window.onload = function() {
             console.log(commonmark)
         }
      </script>
   <body></body>
</html>

这是我的演示的JSFiddle URL: https ://jsfiddle.net/y3xohp7x/

我将此HTML本地保存在名为foo.html文件中,并使用Firefox 55.0.1打开了此本地文件。

但是,如果我使用Firefox 55.0.1加载它,则在控制台中会出现以下错误。

Loading failed for the <script> with source “https://raw.githubusercontent.com/jgm/commonmark.js/master/dist/commonmark.js”. foo.html:5
ReferenceError: commonmark is not defined foo.html:9:5

问题:

  1. 为什么会发生此错误?
  2. 如何解决此错误而不必将commonmark.js复制到本地文件系统?
  3. 我上面引用的commonmark.js README文档中的错误还是我对文档的理解上的错误?

#1楼 票数:0

编辑

实际上,显然有一种方法可以针对github内容执行以下操作: https : //rawgit.com/

该网站为您提供了将以正确的MIME类型提供的脚本版本的链接。

因此,这应该为您正确加载脚本:

<script type="application/javascript" src="https://cdn.rawgit.com/jgm/commonmark.js/master/dist/commonmark.js"></script>

https://jsfiddle.net/w1uvq59r/


原始答案

原因是脚本源与标头一起发回:

"Content-Type": "text/plain"
"X-Content-Type-Options": "nosniff"

后一个标头阻止浏览器执行脚本,因为内容类型不可执行,例如“应用程序/ javascript”。 不幸的是,这意味着实际上没有办法让脚本远程加载。 这是有关类似问题的更多信息的线程。


据我所知,唯一的解决方案是将其本地加载,如下所示:

<script type="application/javascript" src="path/to/the/file.js"></script>

  ask by Lone Learner translate from so

未解决问题?本站智能推荐:

1回复

如何在CommonMark中创建内联原始HTML元素?

我正在http://spec.commonmark.org/dingus/上尝试CommonMark 我想要以下HTML输出,即Foo和Baz被强调而Bar不被强调。 我尝试了各种输入,但没有一个起作用。 我在下面提供了各种CommonMark输入和HTML输出的列表,用于无法正常工作
1回复

如何在CommonMark中解释标签?

请参阅CommonMark规范中示例6之前的说明: http ://spec.commonmark.org/0.27/#example-5 我试图理解以下代码如何导致以两个空格开头的代码块。 例6表明这将转化为以下内容。 但第2.2节明确指出: 但是,在空格有助于定义块结构的上
1回复

如何在CommonMark中自动链接附近的文件?

我正在创建一个README.md文件,并且我想在其中链接到同一目录中的COPYING.md。 我尝试了以下标记,但未呈现链接: 如何创建这样的链接? (显然,取决于链接的解释方式,取决于渲染器和上下文。)
1回复

CommonMark解析***

假设我想使用CommonMark标准将字符串***cat***解析为Markdown。 该标准说( http://spec.commonmark.org/0.28/#phase-2-inline-structure ): .... 如果找到一个: 弄清楚我们是强调还是强调:如
1回复

在CommonMark中使用Django的urlize

我想将Django的urlize函数与django-markwhat的CommonMark过滤器一起使用。 我在想像这样的事情: 会输出<p><a href="http://example.com">http://example.com</a><
2回复

CommonMark在段落中间插入列表

我希望看到以下文本(在80个字符标记处注意换行符): 通过markdown编辑器运行时,生成以下HTML: 通过cmark运行它时,得到以下信息: 这似乎不正确-我绝对不希望列表在段落的中间开始。 这是规范中的问题,还是我可以采取其他措施以不触发此行为?
1回复

如何为phpleague/commonmark创建一个扩展来解析多行

全部, 我正在尝试创建一个扩展(我相信是为了扩展 AbstractBlockParser),它将找到一个开始标记,将后面的行移动到一个块中,然后在找到结束标记时停止(在最后一行上单独)。 在查看提供的示例时,很难弄清楚它们如何构建由多行组成的块,例如使用代码栅栏,并且文档没有涵盖这种情况。 列表解析
1回复

为什么CommonMark认为这7个空格缩进一个代码块?

我使用CommonMark存储了一些注释,并且我注意到此代码段在SO上呈现的方式似乎有所不同( echo缩进7个空格)。 在这里,它被解释为http://spec.commonmark.org/dingus/上的代码块: 这里是堆栈溢出: 如果我将echo缩进8个空格,它将在