因为document.writeln()函数是将整个页面清空然后写东西,相当于重写整个页面
而你第一次点下a1后,页面上就只有“<a href='#' onclick='a()'>a<\/a>”,没有原来引用外部脚本的那句话,因而,a()找不到,也就错了

解决方案 »

  1.   

    我已经用document.write引用外部脚本了,可是还是不行!document.write("<head><script language='javascript' src='Emails.js' type='text\/javascript'><\/script><\/head>");
      

  2.   

    你是这么写的
    test.js
    function a(){
          document.write("<head><script language='javascript' src='Emails.js' type='text\/javascript'><\/script><\/head>");document.writeln("<a href='#' onclick='a()'>a<\/a>");
    }
    也就是说写了两遍document.write(),所以最后页面上留下的文字只有最后一句
    因为document.write()是全部重写
    即便前面写了引用外部脚本的,但实际等于没写上
      

  3.   

    虽然我用了两遍document.write()
    我看了打开的网页后的代码,是有<script language....></script>这条语句的。
      

  4.   


    在已完成的文档上使用write,writeln方法,不但清除内容,也清除所有脚本对象,你定义的a函数已经被清理了,除非重新加载test脚本
      

  5.   

    当引用test.js执行document.write后再点击就会调用Emials.js如果不存在Emails.js就会出错,如过有并且有一函数不会出错
      

  6.   

    楼主:
    “虽然我用了两遍document.write()
    我看了打开的网页后的代码,是有<script language....></script>这条语句的。”
    你看不会是右键单击查看源文件这么看的吧???
      

  7.   

    那样看到的源文件是下载完时的源文件,不是运行时源文件
    可以用Maxthon的ViewSource或者用调试器来查看,那就可以了