如下面这段脚本:
<body>
<button>click me</button>
<script>
var btn=document.getElementsByTagName('button')[0];
var tip=true;
btn.onclick=function(){
if (tip===true){
var sp=document.createElement('script');
sp.textContent="var time='';"+
"var num=1;"+
"function test(){console.log(num);num++;setTimeout(test,1000);}"+
"test();";
sp.id='test';
document.head.appendChild(sp); // 打开控制器可查看脚本已被移除,但是定时器却仍在运行!这简直不可理喻啊!有没有什么办法能够解决?
tip=false;
}else if(tip===false){
tip=null;
document.head.removeChild(document.getElementById('test'));
}else{
return ;
}
}
</script>
</body>
我是在使用ajax请求数据的时候遇到的这个问题。
由于需要将 “获取到的内容”去 “替换” 某个 “容器元素” 下的 “原有内容”,然后又由于这些“获取到的内容具有他们自己样式和行为,所以,在更新他们的时候,不能只简单的更新内容就结束了,还需要删除“原先内容”所对应的脚本和样式,然后添加“当前获取到的内容”所对应的样式和脚本。
由此,我才遇到了,移除脚本后,脚本居然还在运行的情况! 求原因和解决办法....
表述比较累赘,请耐心看完,谢谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
人生最曼妙的风景,竟是内心的淡定与从容!