如何在HTML中调用外部JavaScript类?引入后代码无弹窗问题排查
嘿,我知道你为啥弹窗没出来了!问题出在HTML里的script标签写法上——你用了自闭合的<script src="./component.js" />,但在HTML里,script标签可不能这么写哦!
问题根源与修复方案
核心问题:HTML规范里,
<script>属于非空元素,必须用完整的<script>...</script>形式闭合,自闭合的/>写法会让浏览器无法正确加载外部的component.js文件,后面的代码自然找不到TryClass类,弹窗也就触发不了。修正后的main.html代码:
<html> <!-- 把自闭合的script标签改成完整闭合形式 --> <script src="./component.js"></script> <script> var user = new TryClass( "John" ); user.sayHi(); </script> <body> </body> </html>
为啥会这样?
当你用自闭合的script标签时,浏览器会误认为这个标签还没结束,不仅外部的JS文件加载失败,后面的脚本代码还会被当成这个标签的内容,而不是独立执行的脚本块。你打开浏览器调试控制台(按F12),应该能看到TryClass is not defined的错误提示,这就是最好的证明。额外提醒:
除了script标签,HTML里还有一些类似的非空元素(比如<textarea>、<select>)也不能用自闭合写法,以后写代码的时候要注意哦!
内容的提问来源于stack exchange,提问作者mkuse
相关产品推荐
相关产品推荐

