大家帮忙看看,全局变量取不到——在先等解疑
<html   xmlns= "http://www.w3.org/1999/xhtml ">  
  <head>  
  <meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 "   />  
  <title> 无标题文档 </title>  
  <script   type= "text/javascript ">  
  <!-- 
 var   t1=document.getElementById( "t1 "); 
 var   t2=document.getElementById( "t2 "); 
 function   enc(){ 
 	t2.value=(encodeURI(t1.value)); 
 } 
 function   esc(){ 
 	t2.value=escape(t1.value); 
 } 
 function   une(){ 
 	t2.value=unescape(t1.value); 
 } 
 //-->  
  </script>  
  </head>  
  <body>  
  <p>  <a   href= "QQ骂人宝典.txt "> 打开文件 </a>  </p>  
  <p>        
  <form   id= "form1 "   name= "form1 "   method= "post ">  
        <input   type= "text "   name= "t1 "   id= "t1 "   value= "这里是测试 "/>  
        <input   type= "button "   name= "Submit "   value= "encodeURI "   onclick= "enc() "/>  
        <input   type= "button "   name= "Submit2 "   value= "escape "   onclick= "esc() "/>  
        <input   type= "button "   name= "Submit3 "   value= "unescape "   onclick= "une() "/>  
        <input   type= "text "   name= "t2 "   id= "t2 "   value= " <%=server.URLEncode( "这里是测试 ")%>  "   />  
  </form>  
  </body>  
  </html>  
 系统总是提示找不到对象,于是我把t1,t2   的定义放到任意一个函数中,那个函数就好了,不过我就使不明白为什么,因为我以前也用过全局变量,但是不回出现这种情况,请高手指教一二,谢谢!
------解决方案--------------------js写在页面上是顺序执行的 
 var t1=document.getElementById( "t1 "); 
 时 
 还没有 
  <input type= "text " name= "t1 " id= "t1 " value= "这里是测试 "/>  
 , 
 而当onclick事件触发时在调用 
 var t1=document.getElementById( "t1 "); 
 就有值了。 
 事实就这么简单   
------解决方案--------------------页面在load的时候,从文档开始顺序的,   
 var t1=document.getElementById( "t1 "); 
 var t2=document.getElementById( "t2 ");   
 这段代码执行的时候,你的t1,t2文本框还没加载,所有t1,t2对象肯定是空。   
 你可以把t1,t2对象的初始化过程写到body的onload方法里。也可以写到html文档最后。