动态函数必须用function对象来定义(function是javascript中的一个对象,是固定不变的,规定function对象的"f"必须大写,当是function时,定义函数时所使用的一个关键字:function ppp(x,y),当是function时(f大写时),是javascript中的对象)
创建动态函数的基本格式:
var 变量名 = new function(”参数1“,”参数2“,”参数n“,”执行语句”);
使用new关键字(new是javascript中一个关键字,也是固定的,我们在定义动态函数时必须要使用new来创建这个function对象)
先定义一个变量 ar 变量名,在这里,变量名是随便的,然后再使用new关键字创建一个function对象,然后再把这个对象赋值给这个任意的变量,也就是var 变量名 = new function
function后面的括号中先是传递给函数的参数,然后用一个逗号(,)隔开然后是这个函数要执行的功能的代码。
例子:
在function对象后面的括号里的每一部分内容都必须是字符串形式的,也就是说都必须用引号(“ ”或者是‘ ’)括起来,第一部分是传递给这个动态函数的第一个参数“x”,第二部分是传递给这个动态函数的第二个参数“y“,第三部分是这个函数要完成的功能的代码,这个函数要完成的功能是定义一个变量sum,让sum等于传递给这个函数的两个参数x和y的和,然后返回他们相加以后的值(return sum)。
然后,再编写一条调用这个函数的语句,在这里就可以像调用一个普通函数一样来调用这个变量square,square(2,3),给这个动态函数传递两个参数,然后让函数返回他们相加的结果,然后再alert(square(2,3))显示出结果来,结果是5。
例子:
代码:
以上二段是一样的,只不过一个是动态函数,一个是静态函数
现在通过下面:
可以增加一个checkrule函数,
但我多次执行这段代码会多次插入这个checkrule函数,请问我怎样先删除该新增的函数.
ps:odom表示的是另一个页面的document对象,不是本页的document,所以用typeof(odom.check_rule) 总是undefined
odom.frames.check_rule = null
同名函数会覆盖。
你给新增加的 script 加上一个 id 或者 name,然后删除时就可以利用该 id 或者 name 了
不过切记,一定要在 createelement 方法中就设定 id 或者 name
例如:
o = document.createelement("<script language='javascript' id='aaa'>" + "</scr"+"ipt>");
//合成校验规则
function docombjs(){
var oeditor = fckeditorapi.getinstance('fckeditor1');
var odom = oeditor.editordocument;
var elem=odom.getelementbyid("checkid");
alert(elem);
if(elem!=null){
elem.parentnode.removechild(elem);
}
o = odom.createelement("<script language='javascript' id='checkid'>" + "</scr"+"ipt>");
//o=odom.createelement("script");
o.text=document.all.checkrule.value;
odom.body.appendchild(o);
}