解决多个window.onload冲突:利用eval动态注册事件
作者:竹影时间:2026-10-28 13:49:06浏览:200
当引入的第三方JS文件使用了window.onload导致事件覆盖时,可通过eval函数动态解析并执行原有逻辑。该方法先保存原onload函数,再定义新函数调用原函数及新增逻辑,从而同时运行多个加载事件,避免手动合并代码。
解决window.onload事件冲突问题
在网页开发中,有时引入的第三方JS文件已经定义了window.onload事件。这会导致当前页面的onload事件被覆盖而无法执行。除了将两个函数合并到一个onload中,还有其他方法可以确保两者都能运行吗?
if(window.onload!=null){
eval("theOldFun="+window.onload.toString());
window.onload=function(){theOldFun();addReadResource();};
}
利用eval函数动态执行代码
eval()函数的作用:
它的功能是把对应的字符串解析成JS代码并运行 比如说你现在要运行一个可变的方法
function name1(){……}
function name2(){……}
var m="name1";
eval(m+'()');//运行name1();
m='name2';
eval(m+'()');//运行name2();
作者最新文章
JS怎么使用classList添加、删除和切换class
2026-11-05 17:26:02
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
