如果我将.js文件分开,为什么我不能输入任何字母?

时间:2014-10-19 08:12:34

标签: javascript

实际上我试图获得模块模式的概念。这里我有简单的代码,我曾经在页面上直接输入。在我尝试将实际代码与HTML文件分开并在主HTML文件中只保留一行代码之前,这很好:

<body>
    <script type='text/javascript' src='module.js'>
        // module.JS file was here ....
        document.body.addEventListener('keypress',function(e){module.show(e.keyCode)});
    </script>
</body>

文件module.JS

var module = (function() {
    return {
        show:function(keyCode){
            document.body.innerHTML+=(String.fromCharCode(keyCode));
        }
    };
})();

2 个答案:

答案 0 :(得分:3)

您需要有两个<script>元素。

使用一个&#34;导入&#34;您希望直接嵌入页面的脚本的外部模块和另一个模块:

<script type='text/javascript' src='module.js'></script>

<script type='text/javascript'>
document.body.addEventListener('keypress',function(e){module.show(e.keyCode)});
</script>

有关详细信息,请查看this MDN documentation page。以下是关于src属性(强调添加)的摘录:

  

此属性指定外部脚本的URI;这可以用作直接在文档中嵌入脚本的替代方法。 指定了src属性的脚本元素不应在其代码中嵌入脚本。

答案 1 :(得分:1)

引用外部JavaScript源的脚本块应该是独立的,并且其中的任何脚本都不会被执行。因此,您需要两个单独的脚本块,一个用于外部JavaScript文件,另一个用于脚本。

<script src='module.js'></script>

<script>
    document.body.addEventListener('keypress',function(e){module.show(e.keyCode)});
</script>