◎筱米加步枪◎.Blog

Happy coding

VBScript处理正则表达式

需要写一段VBScript来处理这样一个信息:

给定一个字符串,过滤掉英文字母和下划线。

百度了下相关VBScript语法。第一个VBS代码,贴个纪念下:

Dim re, s
Set re = New RegExp
re.Pattern = "[a-zA-Z_]"  '匹配英文字符和下划线
re.Global = True
s = "abc_DEF提取的中文字符."
MsgBox re.Replace(s, "")  '弹出过滤后的信息

 

网页上更改鼠标样式

特殊要求,做的东东上不能使用默认的鼠标样式,需要一些比较卡哇伊的鼠标样式.

百度了下得:

1.首先得下载.ani或者.cur的文件.这些文件就是鼠标的样式.

2.在需要更改的页面上添加CSS样式.如下:

 

<STYLE type=text/css> 
<!-- 默认的地方使用0041.ani 样式 -->
body{cursor:url('0041.ani');} 

<!-- 滑过链接时使用 0081.ani 样式 -->
a{cursor:url('0081.ani');} 
</STYLE> 

只是例子,要怎么扩展使用得看具体情况了...完毕wink

JavaScript关闭子窗口时刷新主窗口方法

JavaScript关闭子窗口时刷新主窗口方法是:

在子窗口的<body>中加入onunload事件加入:window.opener.location.reload();

即:<body onunload="window.opener.location.reload();">即可

ExtJs中出现this.ds.fields.get(i) is undefined错误解决方法

出现问题如题:依旧谷歌得:

原因:在Grid的列定义中一定要指定dataIndex属性,即使没有store中的对应上(比如一些附加字段)也要指定一个dataIndex,否则就会出现this.ds.fields.get(i) is undefined的错误。

解决方法:当然就是补上列定义中的dataIndex属性咯..

ExtJs中出现this.config[col] is undefined错误解决方法

问题如上,谷歌得:

原因 :

在Grid定义的时候对某列使用了autoExpandColumn属性,而这个属性所指定的是某列定义的id属性,

该列上没有指定id,所以出错了。

解决方法:

在被扩展的那些列指定id属性即可,id属性所指定的值当然要和autoExpandColumn所指定的一样啦。

ExtJs提交表单页面总回调failure解决方法

记得这个问题搞了一个多小时,真悲剧...

原因:回调success或failure是根据返回来的参数的json串中的"success"的值来决定的

例如返回:{"success":true}则调用success,如果返回{"success":false}则调用failure,因此在与Strust2中的Action中加入属性boolean success即可,并且需将其序列化为名字为"success",如下:

	@JSON(name = "success")
	public boolean isSuccess() {
		return success;
	}

Action可通过设定success的属性值来控制是返回success或failure

ExtJs ComboBox提交值的问题

前不久做的一个登录框,下拉选择框是选择登录的角色,本来设定name='userBean.role',但是后台Action打印发现,得到的总是页面上的显示值,这显然不是我想要的,谷歌发现:

只要想得到真实设定的值,只需要把属性换成hiddenName即可,即hiddenName='userBean.role'

JavaScript中prototype属性的用法

前段时间修改公司的一个流程设计器代码,现在有时间整理一些小结。这里要讲的是关于javascript中的prototype属性的用法,有了prototype属性,才感觉javascript有点面向对象的感觉,有了继承多态的感觉。其实prototype是设计模式中的原型设计模式。看如下一段代码,接着上次的代码:

<script type="text/javascript">
        <!-- 声明顶层命名空间 或者 var org = {};  -->
        var org = {}; 
         
        <!-- 增加子命名空间 -->
        org.cst = {};
         
        <!-- 增加子命名空间 -->
        org.cst.js = {};
         
        <!-- 在org.cst.js命名空间里增加类Util -->
        org.cst.js.BaseUtil = function(){
            this.className = "org.cst.js.BaseUtil";
        };
 
		org.cst.js.SubUtil = function(){
			
			this.className ;
		}

		<!-- 子类引用了父类的属性值 -->
		org.cst.js.SubUtil.prototype = new  org.cst.js.BaseUtil();

		<!-- 之类扩展了自己的方法 -->
		org.cst.js.SubUtil.prototype.getClass = function(){
			return this.className;
		}
        <!-- 使用类 -->
        var util = new org.cst.js.SubUtil();
		alert(util.className);   <!-- 输出org.cst.js.BaseUtil -->
		alert(util.getClass());  <!-- 输出org.cst.js.BaseUtil -->
    </script>

JavaScript中的命名空间使用

命名空间的引入实际上是为了防止类名的冲突,在javascript中也是,其实javascript并没有命名空间这一说法,但是却有了这种方法来模拟命名空间,在java中不叫命名空间,叫包名。现在来看看一段javascript实现的命名空间代码:

    <script type="text/javascript">
        <!-- 声明顶层命名空间 或者 var org = {};  -->
        var org = {};
         
        <!-- 增加子命名空间 -->
        org.cst = {};
         
        <!-- 增加子命名空间 -->
        org.cst.js = {};
         
        <!-- 在org.cst.js命名空间里增加类Util -->
        org.cst.js.Util = function(){
            alert('this is my util');
        };
 
        <!-- 使用类 -->
        var util = new org.cst.js.Util();
    </script>

JavaScript对Json的增删改属性

使用JS对Json数据的处理,项目遇到需要对Json数据进行相关操作,比如增删改操作,本以为会比较难,网上搜索下,发现还是比较简单的,贴一段代码:

<script type="text/javascript">
		var json = {
			"age":24,
			"name":"cst"
		};
		//修改Json中的age值,因为Json中存在age属性
		json["age"] = 30;
		alert(json.age); //30

		//增加Json中的sex值,因为Json中不存在sex属性
		json["sex"] = "M";
		alert(json.sex); //M

		<!-- 遍历Json中的数据 -->
		for(var key in json){
			try{
				var value = eval("json['" +  key +"']");
				alert(key+"_"+value);
			}catch(e){}
		}

		//删除Json数据中的age属性
		delete json["age"];
		alert(json.age); //undefined

	</script>