<script id="demo">
function foo(){alert(1111)}setTimeout('foo()',5000);</script>
<script>
function set(){ 
   var f=document.getElementById('demo'); 
   document.getElementsByTagName('head')[0].removeChild(f);
 
}
</script>
<button id="box" onclick="set()">点击我</button>我想页面一加载就点击按钮将demo移除,不让它5秒后执行。可是无效,求帮忙!,谢谢!

解决方案 »

  1.   

    clearTimeout不行吗
    貌似移除那个对象不行的吧?
      

  2.   

    这里的foo只是个例子,我的目的就是想让 demo 里面的代码不执行。求解啊。。
      

  3.   

    你想啊,刚加载页面的时候demo中的foo()方法其实没执行,等5秒了才执行,所以如果为了避免5秒,那只能去掉那个setTimeout
      

  4.   

       var f=document.getElementById('demo'); 
       f.parentNode.removeChild(f);
      

  5.   

    谢谢回复,可是过了5秒后还是alert 11111 了。有没有什么办法让它不执行 demo 里面的代码啊?
      

  6.   

    setTimeout('foo()',5000);这个是调用的,有他存在必然会5秒后执行
      

  7.   

    将那段js代码移除肯定是成功了的,但定时器是js代码的执行结果,不是代码本身,所以仍然存在。
    就好比你调用一个函数改变了元素的背景色,然后将该函数删除(赋值我null就可以),函数没了,但元素背景色被改变却已经发生,不会自己变回去。
    你可以这样写:
    <script id="demo">
    function foo(){alert(1111)}var timer1=setTimeout('foo()',5000);</script>
    <script>
    function set(){ 
      clearTimeout(timer1); 
    }
    </script>
    <button id="box" onclick="set()">点击我</button>