动态添加与删除JavaScript脚本元素的方法

作者:页面旅途时间:2026-10-21 19:05:15浏览:457

本文介绍如何在网页中动态添加JavaScript函数,并通过为Script元素设置ID来定位和删除已存在的脚本节点,从而避免重复插入。同时探讨了在FCKeditor等编辑器环境中获取外部文档对象时可能遇到的ID查找问题及解决方案。

动态添加JavaScript脚本元素

当前通过以下代码片段:


o=oDOM.createElement("script");


o.text=document.all.checkrule.value;


oDOM.body.appendChild(o);


可以成功增加一个名为checkrule的函数。


然而,如果多次执行这段代码,会导致该checkrule函数被多次插入页面。请问如何先删除这个新增的函数?


补充说明:oDOM表示的是另一个页面的document对象,而非当前页面的document,因此使用typeof(oDOM.check_rule)总是返回undefined。



oDOM.frames.check_rule = null


同名函数会覆盖之前的定义。


通过ID定位并删除脚本节点

建议给新增加的SCRIPT元素添加一个ID或NAME属性,这样在删除时就可以利用该ID或NAME进行定位。


需要注意的是,必须在调用createElement方法时就设定好ID或NAME属性。



例如:o = document.createElement("<SCRIPT language='javascript' id='aaa'>" + "</SCR"+"IPT>");



非常感谢,按照这个方法我已经可以实现了。



FCKeditor环境下的脚本操作实例

//合成校验规则


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);


  }

直接写入Script标签的ID查找问题

另外,还有一个小问题。


如果我不使用oDOM.createElement("<SCRIPT language='javascript' id='checkid'>" + "</SCR"+"IPT>");来生成这个id,而是直接将其写入页面,然后使用var elem=oDOM.getElementById("checkid");


为什么获取到的结果是null?一定要通过createElement方法创建后,才能找到这个id,请再帮忙解答一下,谢谢!


你的意思是:



你直接在页面内写 <SCRIPT language='javascript' id='checkid'></SCRIPT>,但是通过语句 var elem=oDOM.getElementById("checkid"); 无法获取该对象,是吗?

作者最新文章