Medium.js无效 - '媒体未定义'

时间:2017-01-24 18:43:38

标签: javascript html

根据author,如下所示:

<html>
    <head>
       <!-- JS for Medium -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/rangy/1.3.0/rangy-core.min.js" defer></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/rangy/1.3.0/rangy-classapplier.min.js" defer></script>
<script type="text/javascript" src="https://cdn.rawgit.com/jzaefferer/undo/master/undo.js" defer></script>
<script type="text/javascript" src="https://cdn.rawgit.com/jakiestfu/Medium.js/master/medium.min.js" defer></script>
<!-- CSS for Medium -->
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/jakiestfu/Medium.js/master/medium.css"/>
    </head>
    <body>

        <div id="editor"></div>

        <script>
            new Medium({
                element: document.getElementById('editor')
            });
        </script>
    </body>
</html>

应该完美,但我一直在

  

未捕获的ReferenceError:未定义中 - 第16行

我在这里做错了吗?我花了最后2个小时没有运气......

感谢。

2 个答案:

答案 0 :(得分:2)

defer属性将脚本设置为最后运行 - 页面加载后。因此,代码在载入Medium.js之前运行。有两种可能的解决方案您可以删除该属性以立即加载库及其组件。或者在整个页面包含脚本时添加事件监听器:

window.onload = function(){
     new Medium({
         element: document.getElementById('editor')
     });
}

答案 1 :(得分:0)

遇到同样的问题,直到我意识到我错过了所有依赖项。这个特殊的错误似乎是由于Rangy失踪而产生的。

 <head>
    <script src="rangy-core.js"></script>
    <script src="rangy-classapplier.js"></script>
    <script src="undo.js"></script>
    <script src="medium.js"></script>
    <link rel="stylesheet" href="medium.css">
</head>