解决多个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();
作者最新文章