Ckeditor 注册事件
<script type="text/javascript"> CKEDITOR.instances["Content"].on("instanceReady", function () { //set keyup event this.document.on("keyup", AutoSave); //and click event this.document.on("click", AutoSave); //and select event this.document.on("select", AutoSave); }); function AutoSave() {//相应的操作过程,可以按下面写,也可以按一般javascript过程写。 CKEDITOR.tools.setTimeout(function () { alert("10101010"); }, 0); } </script>
javascript中赋值运算符的取余等于“%=”
取余等于运算符 | %= |
解释 | 计算两个操作数相除的余数,并将余数赋给左操作数 |
代码演示 | <html> <head> <script> var _param; //定义变量 _param=6;//给变量赋值 _param %=4 ; //对变量进行加运算 document.write(“对变量进行%=4操作后,变量的值:” _param “。</br>”); </script> </head> </html> |
javascript中赋值运算符的乘等于“*=”
乘等于运算符 | *= |
解释 | 将两个操作数相乘并将积赋给左操作数 |
代码演示 | <html> <head> <script> var _param; //定义变量 _param=5;//给变量赋值 _param *= 4 ; //对变量进行加运算 document.write(“对变量进行*=4操作后,变量的值:” _param “。</br>”); </script> </head> </html> |
JavaScript面向对象继承方式归纳
面向对象的语言多数都支持继承,继承最重要的优点就是代码复用,从而构建大型软件系统。如果一个类能够重用另一个类的属性和或方法,就称之为继承。从这个角度来看看JS的继承方式。JS中继承方式与写类方式息息相关。不同的写类方式造成不同的继承方式。各种流行JS库继承方式也各不相同。从最简单的复用开始。
1、构造函数方式写类,通过方法调用复制父类属性/字段到子类 实现继承
这里父类,子类都采用构造函数方式写,不用原型。子类调用父类函数来复制父类的属性。
Js代码- **
- * 父类Polygon:多边形
- * @param {Object} sides
- */
- function Polygon(sides) {
- this.sides = sides;
- this.setSides = function(s) {this.sides=s;}
- }
- /**
- * 子类Triangle:三角形
- */
- function Triangle() {
- this.tempfun = Polygon;//父类引用赋值给子类的一个属性tempfun
- this.tempfun(3);//调用
- delete this.tempfun;//删除该属性
- this.getArea = function(){};
- }
- //new个对象
- var tri = new Triangle();
- console.log(tri.sides);//继承的属性
- console.log(tri.setSides);//继承的方法
- console.log(tri.getArea);//自有的方法
- //缺点是对于Triangle的实例对象用instanceof为父类Polygon时是false
- console.log(tri instanceof Triangle);//true
- console.log(tri instanceof Polygon);//false
javascript深入理解js闭包
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊的变量作用域。
变量的作用域无非就是两种:全局变量和局部变量。
Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。
Js代码
var n=999;
function f1(){
alert(n);
}
f1(); // 999
另一方面,在函数外部自然无法读取函数内的局部变量。
Js代码
function f1(){
var n=999;
}
alert(n); // error
这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!
Js代码
function f1(){
n=999;
}
f1();
alert(n); // 999
js数组操作
shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5] b:1
unshift:将参数添加到原数组开头,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7
注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的返回值不可靠,需要用返回值时可用splice代替本方法来使用。
pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4] b:5
push:将参数添加到原数组末尾,并返回数组的长度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7
concat:返回一个新数组,是将参数添加到原数组中构成的
js连接数据库
示例1:(必须建立ODBC数据源)
<HTML>
<script language=javascript>
function connectDb()
{
var ConnDB = new ActiveXObject(“ADODB.Connection”);
ConnDB.ConnectionString=”dsn=test3d;uid=;pwd=;”;
ConnDB.Open();
var Rs = new ActiveXObject(“ADODB.Recordset”);
var tempstr=””;
Rs.Open(“select result from Issue_3D where result=’071′”,ConnDB,1,3);
while(!Rs.EOF)
{
tempstr = tempstr + Rs(“result”) + “<br/>”;
Rs.MoveNext;
}
test.innerHTML=tempstr;
}
</script>
<BODY onbeforeunload=”return ‘ok?'”>
<P><div id=test> </div>
<P><INPUT id=button1 type=button value=显示 name=button1 onclick=”connectDb()”></P>
Firefox兼容的JavaScript回车
if (document.addEventListener) { document.addEventListener("keypress", fireFoxHandler, true); } else { document.attachEvent("onkeypress", ieHandler); } function fireFoxHandler(evt) { if (evt.keyCode == 13) { doFilter(); } } function ieHandler(evt) { if (evt.keyCode == 13) { doFilter(); } } function doFilter() { //// $j("#page-form").submit(); }
HTML5中对script标签的规定与解释
script 标签用于定义客户端脚本,比如 JavaScript。
除全局属性之外有如下属性
src 定义指向包含脚本的文件的 URL(这样您就可以引用某个包含脚本的文件,而不是直接把脚本插入您的 HTML 文档中)
async 定义脚本是否异步执行。
defer 指示脚本不会生成任何文档内容。浏览器可继续解析并绘制页面。
type 指定MIME类型 默认text/javascript
charset 定义脚本中使用的字符编码。
如果 async 属性为 true,则脚本会相对于文档的其余部分异步执行,这样脚本会在页面继续解析的过程中执行。
如果 async 属性为 false,而 defer 属性为 true,则脚本会在页面完成解析后执行。
如果