为什么我可以'如果我把.js文件分开,就不要键入任何字母

Why I can't type any letter if I separate the .js file?

本文关键字:任何字 文件 我可以 如果 js 为什么      更新时间:2023-09-26

实际上我正试图获得模块模式的概念。这里我有一些简单的代码,我过去常常直接在页面上键入。这很好,直到我试图将实际的代码从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>

文件模块。JS

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

为此需要两个<script>元素。

使用一个来"导入"你的外部模块,另一个用于你想直接嵌入页面的脚本:

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

有关详细信息,您可以查看此MDN文档页面。以下是一段关于src属性的摘录(增加了重点):

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

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

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