为什么这个片段:
<script type="text/javascript">
alert("1111");
</script>
<script type="text/javascript" src="xxx.js">
</script>
导致“1111”被警告,但是这一个:
<script type="text/javascript" src="xxx.js">
alert("111");
</script>
不会导致“111”发出警报?是否无法将代码放在加载外部脚本的同一<script>
标记中?
答案 0 :(得分:7)
嗯,这就是<script>
标记的工作原理。如果您有src
属性,则会忽略该标记的内容。
只需使用其他<script>
标记,问题是什么?
答案 1 :(得分:2)
以下JavaScript是正确的:
<html>
<head>
<script type="text/javascript"> alert("1111"); </script>
<script type="text/javascript" src="xxx.js"> </script>
</head>
<body>
<p> The actual script is in an external script file called "xxx.js".</p>
</body>
</html>
如果您只想要一个脚本标记,那么请输入
alert("1111");
在xxx.js文件中。
当警报放在带有src的脚本标记之间时,警报不起作用,因为这是它的工作方式。当指定src时,它会忽略打开和关闭脚本标记之间的任何内容。
答案 2 :(得分:0)
您的第二个示例是尝试从名为xxx.js的外部文件引用脚本,在这种情况下,该文件位于与html文件相同的文件夹中。如果您创建了该文件并将警报放入该文件并将脚本块移动到head标记中,那么您会发现它可以正常工作。
将javascript放在外部文件中是一种鼓励的做法,因为它允许您在html中使用简单的inlcude语句重用许多页面中的常用函数。另外,它可以让你的html文件更清晰。
当你开始编写大量的javascript时,你可以将所有脚本合并到一个文件中,然后使用像JSMin这样的东西缩小它:http://www.crockford.com/javascript/jsmin.html
这会将您的所有脚本压缩成一个人类无法读取的小形式,但对于您的网站访问者来说要快得多,因为这意味着脚本文件较小,并且只有一个请求将文件提供给客户端。
另外,在编写javascript时,另一个有用的工具是JSLint。
它会解析您的javascript,并通知您语法错误和不良做法。
快乐编码
保