<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>class_test</title> <!--直接把数据写在这对标签里没任何问题,可以正常访问-->
<script>                            
  var sel = new Object();
  sel.start=4;     
  sel.end=5;    
  sel.indst=20;
</script><!--如果换成下面这中文件引用形式则出错,只是将上面数据复制在data.js里,而且文件都存在一个文件夹里,路径正确--><script language="javascript"  type="text/javascript" src="data.js"></script>
<script>
function main(){  
   alert(sel.start);
}
</script>
</head>

解决方案 »

  1. 报错如下:
    sel is not defined
    [在此错误处中断] alert(sel.start); 
      

  2. 不知你data.js怎么写的,我是没问题,你发data.js代码看看
    是不是用了匿名函数?
      


  3.  data.js代码: var sel = new Object();
      sel.start=4;     
      sel.end=5;    
      sel.indst=20;
      

  4. 我这里完全没问题,,你data.js还有其他代码?
      

  5. data.js ==>var sel = new Object();
      sel.start=4;  
      sel.end=5;  
      sel.indst=20;
    demo.html ==>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <meta http-equiv="Content-Language" content="zh-cn" />        <title>demo</title></head>
    <script language="javascript" type="text/javascript" src="data.js"></script>
    </head>
    <script>
    function main(){  
      alert(sel.start);
    }
    </script>
    <body>
    <input type="text" id="testId" onclick="main()">
    </body>
    </html>
      

  6. 明显就是你data.js写的格式不对呗。怎么写的还不贴出来。
      

  7. 还是不对,
    sel is not defined
    [在此错误处中断] alert(sel.start); 
      


  8. data.js代码: var sel = new Object();
      sel.start=4;  
      sel.end=5;  
      sel.indst=20;
      

  9. 打开时间久,没看到已经贴出来了。
    如果这样有问题,可以把DATA.JS里的var sel = new Object();提出来放到HTML里试试,然后再引用DATA.JS。
      

  10. 或者DATA.JS里第一行改一下:
    window.sel = new Object();
      


  11. 1.把DATA.JS里的var sel = new Object();提出来放到HTML里,仍然无效,访问不到
    2.第一行改成  window.sel = new Object();  还是不能访问
      

  12. 怎么个改法啊? date.js文件没看到有上面编码格式啊
      

  13. 把js用记事本打开另存为时选择UTF-8格式
    <script language="javascript" type="text/javascript" src="data.js" charset="utf8"></script>
      

  14. <script>
    function main(){   
      alert(sel.start);
    }
    main();//你也没有调用main()啊????
    </script>
      


  15. 有这么一句
    <body  onload="main();">
    调用了吧?
      

  16. 刚测试了一下,加上调用后运行正常。楼主原样的也可以。如果就是示例这些数据,没有中文,用哪种编码也都可以。但要注意一下是DOS还是UNIX格式。UNIX格式的断行符和DOS的不一样。
      

  17. 这个不可能。肯定能访问到,最多是没有赋值,所以值会是undefined。但和sel is not defined那种完全未声明的报错是不同的。
      

  18. 对,是undefined,但不是已经赋值了吗?还能怎么改?
      

  19. 其实我很怀疑是不是引入data.js失败。。楼主你用firebug看看引入成功没。。
      

  20. 把下面这句:
    <script language="javascript"  type="text/javascript" src="data.js"></script>
    改成:
    <script type="text/javascript" src="date.js"></script>
    就可以引用了,刚才应该是引入data.js失败,但我现在还不知道为啥改下这个就可以成功。
      

  21. 之前说路径是对的,就确定引入成功,这个太绝对了。。还是看下firebug稳当点
      

  22. 恩,是的,据说是因为date.js文件不是标准的js文件,但这还是直接用Dreamweaver建立的。
      

  23. 平常虽不用language="javascript" ,但还真没注意它会有这个副作用。
    没事别太依赖DW,它生成的代码很多都要处理一下。
    或者在DW里修改一下模板,去掉不必要的东西。
      

  24. 在html中调用文件中的变量、函数时,把代码写在 window.onload=function(){  // 这里写代码 } 中。因为很可能执行下面代码的时候,js文件还没有下载完成。
      

  25. 1)路径不对??
    2)你的JS文件有UTF8签名??
      

  26. html文件和js文件的编码要统一
      

类似问题 »