<html>
 <head>
  <title> New Document </title>
 </head>
 <body>
<script>
function test(){
if(confirm('继续?')){
document.write('<script src="jQuery.js" type="text/javascript" id="hello"><\/script>')
}else{
alert('您取消了')
}
setTimeout(function(){alert('加载完成')},3000);
};
</script>
<input type=button value=test onclick='test()'>
 </body>
</html>
这个代码,我想让点击按钮之后在页面中加载jQuery,然后五秒之后弹出加载完成,需要怎么改?  这样写总是弹不出来,但是写成<script> (function test(){.....}()</script>这样就可以,为什么?

解决方案 »

  1.   

    页面加完成后不能用 document.write,不然会清除原来的代码
    document.write('<script src="jQuery.js" type="text/javascript" id="hello"><\/script>')
      

  2.   


    <script> 
        var oHead = document.getElementsByTagName('HEAD').item(0); 
        var oScript= document.createElement("script"); 
        oScript.type = "text/javascript"; 
        oScript.src="test.js"; 
        oHead.appendChild( oScript); 
    </script> 可以用这个来动态添加,安全可靠,页面其他元素没有影响
      

  3.   

    替换掉已引进的jssrc或者动态添加个script
    <script src='' id="test"></script> 
    <script language="javascript">     test.src="jQuery.js" </script> 
    <script>     var oHead = document.getElementsByTagName('HEAD').item(0);     var oScript= document.createElement("script");     oScript.type = "text/javascript";     oScript.src="jQuery.js";     oHead.appendChild( oScript); </script> 
      

  4.   

    已解决,谢谢各位贴出代码。。<script>
    function test(){
    if(confirm('继续?')){
    var script= document.createElement('script');
    script.src="jQuery.js";
    script.type="text/javascript";
    document.getElementsByTagName('head')[0].appendChild(script);
    setTimeout(function(){alert('加载完成'+window.jQuery)},2000)
    }else {
    alert('您取消了')
    }
    }

    </script>
    <input type=button value=test onclick='test()'>