2010-08-26 101 views
6

为什么这个片段:执行代码<script>标签内部与外部源

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

+6

不计算 – kahoon 2010-08-26 21:19:58

+0

这不是从你的问题的方式,我们可以帮助的问题的性质明确。 – donohoe 2010-08-26 21:21:25

+0

嗨,我可以使用这句话的地方“你刚才说的话......是我听过的最疯狂愚蠢的事情之一,在你漫不经心的,不连贯的反应中,你甚至无法接近任何可以被认为是一种理性的思想,这个房间里的每个人现在都沉浸在倾听它,我没有奖励你的观点,并且愿上帝怜悯你的灵魂。“ – Robert 2010-08-26 21:23:07

回答

6

好吧,这就是<script>标签的工作原理。如果您有src属性,则标记的内容会被忽略。

只需使用另一个<script>标签,那有什么问题?

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时,它会忽略打开和关闭脚本标记之间的任何内容。

0

你的第二个例子是试图从一个名为xxx.js的外部文件中引用一个脚本,在这种情况下,它位于与html文件相同的文件夹中。如果您创建了该文件并将警报置于该文件中,并将脚本块移动到头标记中,那么您会发现它会起作用。

在外部文件中放置JavaScript是一种鼓励的做法,因为它允许您在html中使用简单的inlcude语句在许多页面中重用常用函数。另外,它使你的html文件更清洁。

当你开始写大量的JavaScript您可以将所有脚本合并成一个文件,然后使用类似JSMin再压缩它:http://www.crockford.com/javascript/jsmin.html

这将压缩所有的脚本到一个微小的形式,是人眼无法识别,但您的网站访问者的速度会更快,因为这意味着脚本文件更小,并且只有一个请求将文件提供给客户端。

在附注中,编写javascript时另一个有用的工具是JSLint

它分析您的JavaScript,并通知您的语法错误,也是不好的做法。

编码快乐

保罗