使用外部源</script>在<script>标记内执行代码

时间:2010-08-26 21:17:19

标签: javascript

为什么这个片段:

<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>标记中?

3 个答案:

答案 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,并通知您语法错误和不良做法。

快乐编码