为什么自动关闭脚本不适用于ExtJS?
我正在关注ExtJS tutorial并试图创建一个新页面。有用。为什么自动关闭脚本不适用于ExtJS?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title id='title'>HTML Page setup Tutorial</title>
<!-- ** CSS ** -->
<!-- base library -->
<link rel="stylesheet" type="text/css" href="ext-3.3.1/resources/css/ext-all.css" />
<!-- overrides to base library -->
<!-- ** Javascript ** -->
<!-- ExtJS library: base/adapter -->
<script type="text/javascript" src="ext-3.3.1/adapter/ext/ext-base.js"></script>
<!-- ExtJS library: all widgets -->
<script type="text/javascript" src="ext-3.3.1/ext-all-debug.js"></script>
<!-- overrides to library -->
<!-- extensions -->
<!-- page specific -->
<script type="text/javascript">
// Path to the blank image should point to a valid location on your server
Ext.BLANK_IMAGE_URL = '../../resources/images/default/s.gif';
Ext.onReady(function() {
console.info('woohoo!!!');
}); //end onReady
</script>
</head>
<body>
</body>
</html>
不过,如果我更改脚本标记线使用自关闭标签,像以下,这是行不通的。
<!-- ExtJS library: base/adapter -->
<script type="text/javascript" src="ext-3.3.1/adapter/ext/ext-base.js"/>
在萤火虫,它抱怨Ext.EventManager is undefined
。我有两个问题
是一般一个坏主意,使用自关闭标签的脚本?我读过这个post,但它听起来在谈论xhtml。
我正在尝试学习Javascript。虽然我知道修复它的方法是不使用自闭标签,但我仍然想知道为什么FireFox认为
Ext.EventManager
未定义?
是的,这是一个坏主意。脚本标记需要一个结束标记,如您在HTML specification - The script element中看到的那样
不同的浏览器有不同的方法来处理不正确的代码。每个浏览器都试图充分利用这种情况,但他们对每种情况下的最佳做法有不同的看法。处理一些不正确的代码的一种方法是忽略它,这可能是脚本不能在Firefox中执行的原因。
此外,由于您没有doctype标签,该页面默认为HTML,而非XHTML,因此您根本无法使用自闭标签。
感谢Guffa并感谢VS.NET,它自动给我一个自己关闭的''标签。这就是我遇到这个问题的原因。关于问题2,我仍然不明白为什么'Ext.EventManager'是未定义的。我在'ext-base.js'上做了自我关闭。所以,我希望它完全忽略'ext-base.js'。它似乎没有忽视它,但试图处理它。在处理'ext-base.js'时,它给了我一个错误:“Ext.EventManager未定义”。任何想法为什么? – 2011-03-07 07:23:08
我已阅读它。这听起来就是他们在谈论xhtml。你的意思是说,所有的现代网络浏览器不再允许自我关闭脚本标记?如果不再支持,那么FireFox如何仍然尝试读取'ext-base.js'并抱怨'Ext.EventManager'未定义?浏览器完全忽略脚本标记会更有意义吗? – 2011-03-07 07:10:07
这可能是由于浏览器如何解释/解析它们。我对浏览器的技术方面不太了解,所以我不能给你一个确切的答案。 – CincauHangus 2011-03-07 07:14:30
至于'Ext.EventManager'错误,我确实偶尔会遇到Firefox的错误 - 特别是对于长时间的调试,但是一旦刷新就会消失。可能缓存问题/另一个浏览器问题。 – CincauHangus 2011-03-07 07:16:16