XHTML中需要书写独立的封闭Script标签

今天在学习JavaScript时,遇到一个问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Javascript Study</title>
    <script type="text/javascript" src="test.js" />
</head>
<body οnlοad="load()">

</body>
</html>

 上面的load()函数在FF下没有问题,但是在IE下不能成功。Google了一下,有文章描述:

 
http://www.javaddicts.net/blog/index.php/2006/09/19/external-javascript-files-and-script-tags/
 

I spent half of the day hunting down a nice issue related to external JavaScript files and a group of <script> tags with both external and inline-declared JavaScript. The problem and its solution is just so plain dumb that I just had to post it.

I had a JavaScript block that declared some global variables. That block just didn’t get parsed in Internet Explorer and Firefox, but worked just fine in Safari. Before the block two external JavaScript files were included, like this:

<script type="text/javascript" src="foo.js"/>
<script type="text/javascript" src="bar.js"/>
<script type="text/javascript">
    var myVar = "something";
</script>

The block containing the variable declaration never got executed. The reason? Both Firefox and Internet Explorer went straight ahead and parsed the stuff until the ending </script> and because of the fact that <script type="text/javascript"> isn’t really valid JavaScript code, both couldn’t parse the real stuff, i.e. the variable declaration. Neat, no? So to keep it real, you gotta write the following:

<script type="text/javascript" src="foo.js"></script>
<script type="text/javascript" src="bar.js"></script>
<script type="text/javascript">
    var myVar = "something";
</script>

As an experiment I tried declaring the HTML as being XHTML, but even that didn’t help. Or maybe I have been staring at this code for too long.

另外一篇safari的文章也挺有意思:
 http://webkit.org/blog/68/understanding-html-xml-and-xhtml/

转载于:https://www.cnblogs.com/LoveShrek/archive/2008/01/10/1033840.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值