我有一个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
我做错了什么?
答案 0 :(得分:1)
这是无效的语法 - 你不能让代码只是浮动在一个对象中。最简单的方法是将代码移到Object之外。
更好的方法是拥有一个由initXhr()
调用的函数init()
。这将包含您在init
之前尝试放置的相同代码。然后,在最后添加:
this.xmlHttp = xmlHttp;
然后,在其他功能中,使用this.xmlHttp
。
答案 1 :(得分:0)
看起来你正在将普通的Javascript放在一个对象块中。
将XMLHTTP代码块移到行var Slide =
上方。
如果这没有用,请向我们展示整个文件。