javascript文件中的xmlhttprequest导致错误

时间:2009-12-20 18:04:06

标签: javascript

我有一个javascript文件,其代码有点像这样:

var Slide =     
{   

    init: function()
    {
        var thumbs = new Array();
        thumbs = Core.getElementsByClass("thumb-img");
        var i;
        for (i=0; i<thumbs.length; i++)
        {
            Core.addEventListener(thumbs[i], "click",  (function( j){return function(){Slide.showImage(j);/*alert(j);*/};})(i));

        }
    },

现在,我正在尝试在此javascript文件中传递xmlhttp对象。 我在init: function() ...

上面添加了以下内容
var xmlhttp;

function getVote(int)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var value = int;
alert(value);
var url="user_submit.php";
url=url+"?vote="+int;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
  if (xmlhttp.readyState==4)
  {
  document.getElementById("captionbox").innerHTML=xmlhttp.responseText;
  }
}

function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
  {
  objXMLHttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
return objXMLHttp;
}

...但是firebug给了我错误: missing : after property id var xmlhttp;\n

我做错了什么?

2 个答案:

答案 0 :(得分:1)

这是无效的语法 - 你不能让代码只是浮动在一个对象中。最简单的方法是将代码移到Object之外。

更好的方法是拥有一个由initXhr()调用的函数init()。这将包含您在init之前尝试放置的相同代码。然后,在最后添加:

this.xmlHttp = xmlHttp;

然后,在其他功能中,使用this.xmlHttp

答案 1 :(得分:0)

看起来你正在将普通的Javascript放在一个对象块中。

将XMLHTTP代码块移到行var Slide =上方。

如果这没有用,请向我们展示整个文件。