javascript没有被调用

时间:2008-11-20 12:43:54

标签: javascript html ajax

我正在使用此HTML

<html>
    <head>
        <Title>EBAY Search</title>
    </head>
    <script language="JavaScript" src="ajaxlib.js"></script>
    <body>
        Click here <a href="#" OnClick="GetEmployee()">link</a> to show content
        <div id="Result"><The result will be fetched here></div>
    </body>
</html>

使用此Javascript

var xmlHttp

function GetEmployee()

{

xmlHttp=GetXmlHttpObject()

if(xmlHttp==null)

{

alert("Your browser is not supported")

}

var url="get_employee.php"

url=url+"cmd=GetEmployee"

url=url+"&sid="+Math.random()

xmlHttp.open("GET",url,true)

xmlHttp.send(null)

}

function FetchComplete()

{

if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete")

{

document.getElementById("Result").innerHTML=xmlHttp.responseText

}

if(xmlHttp.readyState==1 || xmlHttp.readyState=="loading")

{

document.getElementById("Result").innerHTML="loading"

}

}

function GetXmlHttpObject()

{

var xmlHttp=null;

try

{

xmlHttp=new XMLHttpRequest();

}

catch (e)

{

try

{

xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");

}

}

return xmlHttp;

}

然而它没有被召唤。当我自己调用它时,get_employee.php工作正常,所以这不是问题。我的代码中是否有任何错误会阻止它被调用?我无法测试任何firefox扩展,我没有访问权限,所以请不要将其作为答案。

编辑:问题是javascript根本没有被调用。我修复了问号问题,但即使只是一个带警报的简单javascript也没有被调用。

10 个答案:

答案 0 :(得分:1)

var url="get_employee.php?"

需要“?”。

最好使用此标记来包含脚本:

<script type="text/javascript" src="ajaxlib.js"></script>

答案 1 :(得分:1)

更改此

var url="get_employee.php"

url=url+"cmd=GetEmployee"

url=url+"&sid="+Math.random()

到此:

var url="get_employee.php?cmd=GetEmployee&sid="+Math.random();

你错过了“?”并且不需要所有的连接(但我想这只是个人风格)。

另外,如果您确实拥有“&lt;结果将在此处获取&gt;”在你的HTML中,你应该删除它。

答案 2 :(得分:1)

使用像firebug这样的javascript调试工具,这会让你的生活变得更简单。

您的代码中出现语法错误导致错误“GetEmployee未定义”

在“GetXmlHttpObject()”中的最后一次尝试之后,它是一个缺失的“catch”。添加缺少的“catch”后,这是相同的功能。

function GetXmlHttpObject()
{
    var xmlHttp=null;
    try
    {
        xmlHttp=new XMLHttpRequest();
    }catch (e)
    {

        try
        {
            xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (e) {}

    }
return xmlHttp;
}

答案 3 :(得分:1)

我对将<script>标签放入头部和身体之间无人区域感到困惑。这有什么特别的意义吗?

答案 4 :(得分:0)

var url =“get_employee.php” +“?”

(回答评论)

报告了哪些错误?您仍然需要将您的FetchComplete函数附加到xmlHttp的“onreadystatechange”属性,但不应该这样做是错误的。

确保ajaxlib.js确实已加载,并且它是您所指的文件。发一些警报,看看它们是否弹出。

答案 5 :(得分:0)

getcommand.phpcmd=部分之间不应该有问号或符号吗?

答案 6 :(得分:0)

我不认为它的内容像网址中的missinq问号一样愚蠢

var url="get_employee.php"
url=url+"cmd=GetEmployee"
url=url+"&sid="+Math.random()

我原本希望看到"?cmd=GetEmployee"

答案 7 :(得分:0)

您可以使用alert(url)检查发送的确切网址。

答案 8 :(得分:0)

确保您没有错放或命名文件。 您也可以将OnClick更改为全部小写。

答案 9 :(得分:0)

如果你不能使用正确的调试器,你可以在所有地方添加警告语句,看看是否有任何事情发生(是的,这是一个糟糕的解决方案,但是任何时候你不使用一个好的工具,你有糟糕的解决方案)。

另外,请确保OnClick()返回false,以防止浏览器重新加载页面。

<a href="#" OnClick="GetEmployee()">link</a>

变为

<a href="#" OnClick="GetEmployee(); return false;">link</a>