<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <script src="DataProcess.js" type="text/javascript"></script>
</head>
<body onload= "PageLoad()"> 
    <form id="form1" runat ="server" method="post">
想在html中调用js文件中的函数,但是在<body onload= "PageLoad()">这里就报错,"object expected"
说是缺个对象,请问到底应该怎么办,谢谢!

解决方案 »

  1.   

    JS里是否含有中文字符,如果有,设置
        <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
    编码格式GB2312
      

  2.   

    var manItemArray_tbUndo
            var curRowIndex_tbUndo = 0;
            var curRowIndex_tbDone = 0;
            var CallBackStr;
           
            
            function PageLoad()
            {
                CallBackStr = "";
                <%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>;
            }
    这和js文件内容好象没什么关系,因为把这段代码直接加到html里面,运行时完全正确.
      

  3.   

    <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
    这在哪里设置?
      

  4.   

    楼上的,设置了但是还是不行,依然是"Object Expected"
      

  5.   

    <%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>
    你这个必须要写到aspx里面的吧.
      

  6.   

    <%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>;
    在客户端生成什么JS代码?在客户端运行后查看源文件,
          {
                CallBackStr = "";之后的代码都发出来,问题应该在这里.缺少的对象可能在OnLoad事件前还没有生成实例
      

  7.   

    我把<%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>换成alert("hello world");就OK了,看来就是这句话的问题.现在我要保持原来的效果,应该怎么处理呢?
      

  8.   

    要保持原来的效果,还是象我说的一样,查看<%=ClientScript...%>在客户端生成什么代码,用浏览器"查看源文件"贴出来看看( CallBackStr = "";之后的代码都发出来),缺少的对象可能在OnLoad事件前还没有生成实例,没代码,不知道错哪里
      

  9.   

    这个程序根本执行不了,怎么查看源文件呢?
    我把<%=%>里面的内容改了一下
    function PageLoad()
            {
                CallBackStr = "123";
                <%=CallBackStr %>;
            }
    ,也还是同样的错误,是不是在js文件里面不能用<%=%> ?
      

  10.   

    你把JS放到页面,页面查看服务器端生成的回调代码是什么
    再把<%=ClientScript...%>替换成服务器生成的回调的JS部分代码.
      

  11.   

    扩展名是.js的话,<% %>中的语句是不被编译执行的……疏忽了……
      

  12.   

    把.js改成.aspx
    这里也改了
        <script src="DataProcess.aspx" type="text/javascript"></script>
      

  13.   

    楼上的,怎么才能达到<%=%>同样的效果啊?
      

  14.   

    或者在IIS设置做些改动,打开虚拟目录属性,配置,映射,添加
    可执行文件:
    C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
    扩展名:
    .js
      

  15.   

    把<%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>;
    写到aspx
    var EvalStr = <%="'"+ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null)+"'" %>;
    js :
            function PageLoad()
            {
                CallBackStr = "";
                eval(EvalStr);
            }
      

  16.   

    <script src="DataProcess.js" type="text/javascript"></script>
    改成:
    <!-- #include file="DataProcess.js" -->
      

  17.   

    上面说的都试过了,还是不行啊.
    看来在js里面是不能用<%= %>
      

  18.   

    试试下面的
    <body onload= "PageLoad">
      

  19.   

    <script src="DataProcess.js" type="text/javascript"></script>
    路径有问题吗?
    或者PageLoad函数名换换
      

  20.   

    不是的啦。可以用<%= %>
      

  21.   

    使用 <script src="..."></script> 导入的 js 不能使用 <%=%>,因为这个脚本是在客户端加载的,并没有在服务器上运行。
      

  22.   

    我觉得可能是因为<%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>是asp语法,所以在js文件中不能读取.现在我将原文件改动了一下<body onload= "PageLoad();<%=ClientScript.GetCallbackEventReference(this,"CallBackStr","OnCallback",null) %>;">,OK,通过!