动态添加与删除JavaScript脚本元素的方法
本文介绍如何在网页中动态添加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"); 无法获取该对象,是吗?
JS监听滚动事件:回到顶部按钮的显示与隐藏逻辑
2026-11-05 16:19:37
JavaScript怎么读写LocalStorage与SessionStorage
2026-11-05 15:40:11
anime.js 与 GSAP 对比:轻量级项目该怎么选择动画库
2026-11-05 11:24:55
flv.js 与 hls.js 在直播场景下的选型对比
2026-11-05 08:18:52
JavaScript能做什么?前端开发中的作用与应用场景解析
2026-11-04 23:17:54
