如何在本地HTML文件中加载commonmark.js?

时间:2017-08-16 01:45:06

标签: javascript html commonmark

我按照这些步骤编写了一个演示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.js,   或bower 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网址: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自述文档中的错误,还是我对文档的理解错误?

1 个答案:

答案 0 :(得分: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"

后一个标题会阻止浏览器执行脚本,因为内容类型不可执行,例如&#34; application / javascript&#34;。遗憾的是,实际上没有办法让脚本远程加载。 Here is a thread with more information on a similar problem.

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

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