Javascript 从远程JSON创建对象
我以前也发过帖子,但我觉得我有点太具体了,没有引起太多兴趣。我不熟悉javascript和AJAX,发现很难找到这个问题的简单答案。我的目标是简单地解析一些远程JSON,给我一个对象,然后我可以在应用程序的其余部分中使用它 我遇到的问题是使这个对象保持活动状态(使用XMLHttpRequest获取数据—它只在回调函数期间填充)。我有jQuery可用,如果这使答案更容易。javascript是GoogleChrome扩展的一部分,并且具有访问远程JSON的正确权限 希望有人能帮忙 编辑;来自原始帖子的代码+Scott M的答案Javascript 从远程JSON创建对象,javascript,jquery,ajax,json,google-chrome-extension,Javascript,Jquery,Ajax,Json,Google Chrome Extension,我以前也发过帖子,但我觉得我有点太具体了,没有引起太多兴趣。我不熟悉javascript和AJAX,发现很难找到这个问题的简单答案。我的目标是简单地解析一些远程JSON,给我一个对象,然后我可以在应用程序的其余部分中使用它 我遇到的问题是使这个对象保持活动状态(使用XMLHttpRequest获取数据—它只在回调函数期间填充)。我有jQuery可用,如果这使答案更容易。javascript是GoogleChrome扩展的一部分,并且具有访问远程JSON的正确权限 希望有人能帮忙 编辑;来自原始帖
var createdDate;
function checkDomainRegistrationLength(url) {
var serverName = urlToServerName(url);
var xhr = new XMLHttpRequest();
xhr.open("GET", "eg.json", false); //Code now working, was set to async
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
var resp = JSON.parse(xhr.responseText);
createdDate = resp.WhoisRecord.audit.createdDate;
}
}
xhr.send();
return createdDate;
}
将返回的对象分配给全局变量。然后,您可以在整个应用程序中访问它
编辑:如果您有jQuery可用,它将使您的生活更加轻松。使用该工具为您完成工作。在回调中(只调用一次!)可以设置变量
很抱歉没有在前面看到jquery参考,否则我会在回答中包含这一点。显示一些代码,说明您遇到的问题。您希望“保持它的活力”多久?您已经可以保持多久?直到下一页重新加载/单击非JS链接?直到会话结束?我只需要让它保持活动状态,让它从JSON返回一个值,我认为问题本身被其他人掩盖了,因为每一点帮助都有效,但随后会显示不同的错误。同样,它应该有效,但不会。。。前面的调试会话很长:(是的,如果这不起作用,那么您可能在其他地方遇到问题。尝试使用debug.print(message)(我认为这是正确的调用)并在firebug中查看输出。我通过调试器运行了它,我注意到函数本身运行了不止一次(只需要多次访问xhr状态更改函数)并最终返回正确的字符串。但是,在开始的几次中,它返回一个空值,这就是我看到问题的地方。知道它为什么会执行多次吗?(检查是否有额外的意外调用)添加了关于jquery的信息。这将使您的生活变得更加轻松。此外,由于就绪状态多次更改,您的函数将被多次调用。jquery将为您提取此信息(并使其在所有浏览器中都能工作)让代码更容易编写,更容易预测。是的,今天下午我已经读了一些关于它的内容。我将尝试使用它的方法实现它。谢谢你的帮助