JavaScript关闭子窗口时刷新主窗口方法
JavaScript关闭子窗口时刷新主窗口方法是:
在子窗口的<body>中加入onunload事件加入:window.opener.location.reload();
即:<body onunload="window.opener.location.reload();">即可
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>
JavaScript手动提交表单失败
前几天,要用到由JavaScript手动去提交表单
代码如下:window.document.forms[0].submit();
明明是正确的,但是总是报错。百度的代码也都是这样。
无聊之中,把表单下的Struts 的<html:submit>给去掉了,结果意外的提交成功了。
原因可能是因为手动提交,不允许表单内有提交按钮吧。
MyEclipse中JS文件显示中文乱码解决方案
以前出现的问题,前几天小杨也出现此问题,因此备忘下:
在MyEclipse中JS文件显示问题,有中文的地方都变成看不懂的乱码~~只需要设置下MyEclipse的一些属性即可~~具体方法如下:
【Window】>>【Preferences】在出现的窗口中选【MyEclipse】>>【Files and Editors】>>【JavaScript】在右边的【Encoding】下拉框中选为【Chinese,National Standard】即可。
如图:
"Internet Explorer无法打开站点"的解决方法
访问自个的作业~~总是出现 "Internet Explorer无法打开站点" 的问题~~网上查了~~很多人说是病毒问题,但是其他网页都输入可以~~
查了许久,找到了答案:
原来是我的页面的问题,页面的其中一段代码如下:
<SCRIPT Language="JavaScript" SRC="<%=path %>/js/class_MTree.js" type="text/javascript"></SCRIPT>
原因是因为页面还没加载完就去执行了外部文件吧~~
解决方法是是用JavaScript中的 defer 属性,defer 属性只会判断当前页面是否加载完毕,若加载完毕,就执行脚本,修改后的代码如下:
<SCRIPT Language="JavaScript" SRC="<%=path %>/js/class_MTree.js" type="text/javascript" defer="defer"></SCRIPT>