还要请教一个问题!
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> ");
}
2.html
<script language= "javascript " src= "test.js " type= "text/javascript "> </script>
<a href= '# ' onclick= 'a() '> a1 </a>
当运行2.html后点a1后,在点a1就会出现javascript错误,提示对象不存在。
请问那里错了?
------解决方案--------------------因为document.writeln()函数是将整个页面清空然后写东西,相当于重写整个页面
而你第一次点下a1后,页面上就只有“ <a href= '# ' onclick= 'a() '> a <\/a> ”,没有原来引用外部脚本的那句话,因而,a()找不到,也就错了
------解决方案--------------------你是这么写的
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()是全部重写
即便前面写了引用外部脚本的,但实际等于没写上
------解决方案-------------------- 在已完成的文档上使用write,writeln方法,不但清除内容,也清除所有脚本对象,你定义的a函数已经被清理了,除非重新加载test脚本
------解决方案--------------------当引用test.js执行document.write后再点击就会调用Emials.js如果不存在Emails.js就会出错,如过有并且有一函数不会出错