Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
239 views
in Technique[技术] by (71.8m points)

如何删除动态的js?

比如我动态的创建了script标签,从textarea获取动态写入的内容

var num = 1;
setInterval(()=>{
++num;
console.log(num);
$('.box').html(num);
},1000)

然后添加到body里面去。

当再次修改textarea里面的内容的时候,删除之前的创建的script,再重新生成,然后就发现,之前写的js还在执行。有没有什么办法可以清除之前的js,各位大神指教一下,谢谢!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

无法清除

比如说你全局有个 window.a = 1
在你 textarea 的 script 中执行 (window.a++)
那么你想在想让 window.a == 1 , 这是不可能的

当然既然是程序就不存在绝对的不可能,那么有什么可以实现的方案呢?

  1. script 构建到新的 iframe 中,每次其实都是重新加载页面。比如说一些在线编辑器, jsrun 、codepen 不都是这样的吗?
  2. 不使用全局的变量,而是使用固定的变量,比如说vue,每次手动销毁即可。

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...