高程笔记
1、creatTextNode兼容
function fn(code){
var script = document.createElement("script");
script.type = "text/javascript";
try{
script.appendChild(document.createTextNode(code)); //IE9下不兼容
}catch(ex){
script.text = code ;
};
document.body.appendChild(script);
};
fn("alert(1)");
2、 <form name="form1" method="post" enctype="multipart/form- data" action="requestfile/asprece.aspx">//如果file框没有加runat="server",则 form里一定要加上 enctype="multipart/form-data"这样才可以实现上传文件到服务器;使用了server和没有使用 runat="server"是有区别的.使用了runat="server"的form编译后,action必定是指向本身的网页。而没有加runat="server"的form可以指向一个网页。
3、input只允许输入数字
obj.keyup(function (event) {
this.value=this.value.replace(/[^\d]/g ,'')
});
4、事件处理函数中,如果事件给父级,点击了它的子级,target指向的是被点击的子级(随冒泡而改变)
5、preventDefault() 阻止默认行为 stopPropagation() 阻止冒泡或捕获
6、H5中的事件
contextmenu 自定义上下文菜单 (高程389页)
beforeunload 弹出对话框询问用户是否真的要离开页面
EventUtil.addHandler( window, "beforeunload", function (event) {
event = EventUtil.getEvent(event);
var message = "我会想念你的";
event.returnValue = message ;
return message ;
})
在我们写js code 的时候,我们有2中写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。
函数声明方式提升【成功】
function myTest(){
foo();
function foo(){
alert("我来自 foo");
}
}
myTest();
函数表达式方式提升【失败】
function myTest(){
foo();
var foo =function foo(){
alert("我来自 foo");
}
}
myTest();
浙公网安备 33010602011771号