新手学习ext4.2,没有其他版本环境,以下代码既不执行也不报错
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css"/>
<script type="text/javascript" src="ext/ext-all.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function(){
Ext.window.MessageBox.alert('Hello','World');
});
</script>
</body>
</html>后来改成下面就成功了
Ext.Msg.alert问题是我是按照4.2的手册api查询写的,alert后面还有个 CHAINABLE 标签
后来查example,又用的Msg4.2 手册,js里的版本,都是4.2,但是例子又是老的写法问题出在哪里呢?
ext44.2不一致

解决方案 »

  1.   

    嗯嗯,我也是4.2,copy了你的代码,FF提示..is not function.Ext.window.MessageBox是一个类名,据我测试,使用者是不能通过代码去实例化他的,所以当你不用他的实例而去使用他的方法,就会报..is not function. 这个跟JAVA有类似的地方,java可以直接通过类名调用其静态方法,而JS貌似没有静态方法一说(也许我水平有限,没接触到)。在v4.2,api第一行有介绍,Ext.window.MessageBox有单例Ext.MessageBox别名Ext.Msg,这样我们就可以通过Ext.MessageBox这个实例化的Ext.window.MessageBox对象来调用alert方法,所以Ext.Msg.alet()并不是老版本的写法。