不明白 LZ 为什么不直接在 head 里引用 .js,非要这么写?!a.js 里是什么?alert(document.getElementById("div1").innerHTML);应改为alert(document.getElementById("div1").innerText);

解决方案 »

  1.   

    不一定是a.js文件啊,我说了,即使把<script src="a.js"></script>改成<script>alert("")</script>也一样不能得到执行
    至于你后面说的那个alert(document.getElementById("div1").innerHTML);不是正式内容所需要的,只是我为了探测此时是否成功的把代码赋值到了div1中而加的调试用的,修改这个没有什么意义
      

  2.   

    这样子是不会执行的啊,
    以原为输出
    放在div里面怎么能执行呢,
    要明白js的工作原理啊, 
    无非就是要用js加一个js文件吗

     //引用js/css文件;
    function include(path,type,title){
    var s,i,t;
    if(arguments.length < 1){
    return ;
    }
    if(arguments.length == 1){
    type = "js";
    }
    switch(type.toLowerCase()){
    case "css":
    t = document.getElementsByTagName("link");
    for(i=0;i<t.length;i++){
    if(t[i].href && t[i].href.indexOf(path)!=-1){
    return;
    }
    }
    s=document.createElement("link");
    s.rel="alternate stylesheet";
    s.type="text/css";
    s.href=path;
    s.title=title;
    s.disabled=false;
    break;
    case "js":
    case "javascript":
    default:
    t = document.getElementsByTagName("script");
    for(i=0;i<t.length;i++){
    if(t[i].src && t[i].src.indexOf(path)!=-1){
    return;
    }
    }
    s=document.createElement("script");
    s.type="text/javascript";
    s.src=path;
    break;
    }
    var h=document.getElementsByTagName("head")[0];
    h.appendChild(s);
    }
      

  3.   

    使用方法<script>
    include(path,type,title);
    </script>
    就行了
      

  4.   

    <html>
    <head>
    <script language="javascript">
    function window.onload() {
    document.getElementById("div1").innerHTML="更改<input type='button' value='click me' onclick=javascript:alert('hi');>之后";
    alert(document.getElementById("div1").innerHTML);
    }
    </script>
    </head>
    <body>
    <div id="div1">原始内容</div>
    </body>
    </html>这个挺有意思的呵
    我试了试,直接加入不用触发的任何代码都是不会被执行的,估计的原因是:所有的文档都已加载完毕后,修改其内容,浏览器只会按预定的格式显示出来,而不会重新加载执行
      

  5.   

    rjzou2006(一个小泡)给了这个强大功能的函数,十分感谢,但是我要做到的仅仅是加载js文件,我仔细看了你给的代码,发现对js的处理仍然是用appendChild方法,我在一些资料上已经见过appendChild来动态加载js文件,但是测试了发现实际上这样也仍然得不到执行各位注意一下:这个加载js文件要处于window.onload()里面,因为我必须要窗口载入完毕后才能加载,不然就会出现找不到对象的错误,因为不允许我的代码添加到body里面以及后面
      

  6.   

    Ischema(花客)
    是啊,我也在想这个问题啊
    但是,那ajax是怎么办到的呢?ajax在页面载入完毕后很久还可以再加载javascript代码
    其实仔细想想我想实现的效果就有点类似ajax
      

  7.   

    对于ie,动态加的script要加defer属性<html>
    <head>
    <script language="javascript">
    function window.onload() {
    document.getElementById("div1").innerHTML="更改<scr"+"ipt defer >alert();</scr"+"ipt>之后";
    alert(document.getElementById("div1").innerHTML);
    }
    </script>
    </head>
    <body>
    <div id="div1">原始内容</div>
    </body>
    </html>
      

  8.   

    var jsCode = "更改<scr"+"ipt src=\"a.js\"></scr"+"ipt>之后";
     var jsIframe = document.createElement("iframe");
     jsIframe.style.display = "none";//把jsIframe隐藏起来
     document.body.appendChild(jsIframe);
     with(window.frames[window.frames.length - 1]){
      document.open();
      document.write(jsCode); //执行JS代码
      document.close();这有篇文章,你看看
    http://cache.baidu.com/c?word=%2E%3Binnerhtml%2Cscript%2Csrc&url=http%3A//www%2Ewebdn%2Ecom/web%5Ffile/html/H0607240/&p=8b2a950d8f934ead07b38a6f59&user=baidu
      

  9.   

    很久很久没有解决的问题终于在别人的帖子里看到了答案
    大家应该好好看看下面这个帖子
    http://topic.csdn.net/u/20071015/20/1c95342c-3cef-4073-9b61-9706cc1eaa45.html
    如何给javascript后台创建的元素增加事件  [已结贴]