我可以在Android应用程序中运行此代码(使用PhoneGap和jQuery Mobile),但不能在桌面浏览器上运行。 它给我的萤火此行语法错误=阿贾克斯浏览器损坏在Android中工作
var TicketList = eval("(" + ajax.responseText + ")");
下面是代码
// JScript source code
// ran on body load
function doJsStuff()
{
var ajax = AJAX();
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
var TicketList = eval("(" + ajax.responseText + ")");
if (TicketList.ListCount > 0) {
document.getElementById("opencount").innerHTML = TicketList.ListCount +" Open Tickets";
for (Ticket in TicketList.Tickets) {
// add stuff to DOM
//AddTicketToList(TicketList.Tickets[Ticket]);
}
}
else {
document.getElementById("opencount").innerHTML = "All Tickets Reviewed";
DisplayNoresults();
}
}
}
ajax.open("GET", "http://website.com/ListTicketsRequest.ashx?PageNumber=1&PageSize=1&Status=Open", true);
ajax.send(null);
//document.addEventListener("deviceready", onDeviceReady, false);
//event to check for PhoneGap
//$('ul').listview('refresh');
$('#mtickets').page();
//showVars();
}
function AJAX()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
}
return xmlHttp;
}
** TicketList在的JSON遇到这样的变量=
{"Tickets" : [{"TicketID": "1054","Category": "N/A","SubmittedUserID": "bob.thebuilder","ShortDescription": "test question QID:16668","CreationDate": "2/16/2011 12:24:19 PM","TicketStatus": "Open","LongDescription": "Something is wrong with this question I know I hve the right answer but it keeps telling me I'm wrong"},{"TicketID": "1053","Category": "Mission Support","SubmittedUserID": "dave","ShortDescription": "Make courseware revisions","CreationDate": "2/16/2011 9:34:48 AM","TicketStatus": "Open","LongDescription": "Find help tickets generated by users for possible courseware update."}], "PageCount": "6", "ListCount": "11"}
关于PhoneGap的注意事项如果您试图将phoengap功能包含在代码也可以在浏览器中执行的地方请确保您只在“deviceready”上添加手机间隙功能,否则浏览器将无法呈现。例如:
function onload(){
//event to check for PhoneGap
document.addEventListener("deviceready", onDeviceReady, true);
}
...
function onDeviceReady()
{
// Now PhoneGap API ready
vibrate(90); // vib to ack pg ready
$("a").click(function(event){
vibrate(30); // add 30 sec vib to all links
});
}
好的,我该如何更换eval()?函数(TicketList){}应该以某种方式解析数据。 BTW TicketList是一个变量,看起来像上面的编辑。 – gooddadmike 2011-02-23 21:30:52
'function(TicketList){}'不是一个名为TicketList的函数。它是一个通用函数(没有名字),它传递了一个叫做“TicketList”的变量。把你的代码放到那个函数中,并像使用'TicketList'变量那样使用'TicketList'变量。 '.getJSON()'函数处理幕后的eval。 – Dutchie432 2011-02-23 21:41:18
看到我上面的简化示例。 – Dutchie432 2011-02-23 21:43:28