首先  你这个click事件是绑定到页面上的元素了吧  那说明你在执行click事件的时候(也就是改变scrpt src属性的时候)整个html文档已经加载完毕,既然已经加载完毕   那对于script标签   作为文档的一部分  对src的修改只能是静态的修改(也就是只把字符串a.js换成了b.js),引用的文件内容是无法替换的。就算是能改变引用的内容  但是文档都已经加载完毕了  你这段新的js也没有机会再加载执行了  代码用不了所以也没啥意义。至于解决办法  要看具体是怎样的应用场景,可以在改变src之后window.refresh刷新;也可以不用onclick  在执行a.js的时候就在<script src="a.js">之后紧接着插入<script src="b.js">.

解决方案 »

  1.   

    业务逻辑不对你先分析下 你要在什么场景 下  实现什么需求?
    然后你要判断下
    1)实现你的需求 非要  改变 scr吗?
    2)改变src能实现需求吗?
      

  2.   


    恩  考虑不周~  window.refresh这个方法不可取。
    三楼说的有道理 。
    对于这种替换文件引用  没有通用的解决办法   要看具体需求。
    不知道你是什么需求  应该有其他方法实现需求。
      

  3.   


    恩  考虑不周~  window.refresh这个方法不可取。
    三楼说的有道理 。
    对于这种替换文件引用  没有通用的解决办法   要看具体需求。
    不知道你是什么需求  应该有其他方法实现需求。我想要的是个html页面打开默认是调用1.JS文件的输出内容。但用户点击按钮后就切回成2.JS文件输出的内容

    1.html打开默认显示1.JS的document.writeln输出内为“你好”
    当用户点击按钮后就切回成2.JS的document.writeln输出内为“再见”
      

  4.   

    只要你 不用 document.write、document.writeln 就不会有问题
      

  5.   

    在请问为什么用document.getElementById输出内容时为什么自定义付值过去就能替换ID的内容反而外调用的function之类的程序没反应
    比如
    开头默认是加载
    1.JSfunction aa()//默认这些这个程序
    {
    var a='<div style="height:15px;line-height:15px; font-size:14px;text-align:center;width:"'+w+'";"><a href="#" onclick="javascript:aa1();" title="">11</a></div>';
    swfobject.embedSWF(xx,xx,xx,xx,a1)//这是另外1个JS文件里面的代码程序调用这个带ID位置输出
    document.getElementById("a2").innerHTML=a;
    }function aa1()
    {
    var a='nnn';
    swfobject.embedSWF(xx,xx,xx,xx,a1)//
    document.getElementById("a2").innerHTML=a;
    }
    点击aa1()时a2的内容改变了但a1的内容没改变这是为什么了
    我开头以为2.js文件的程序加载后只自行1次。但我把aa1()的a1改成其他又调用到。不过A1的内容还留在HTML上面不知道有什么方法使得A1的内容能改变到
      

  6.   

    上面的问题解决了。。原因条用2.JS生成的内容吧a1的ID飞了怪不的没反应