Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从远程JSON创建对象_Javascript_Jquery_Ajax_Json_Google Chrome Extension - Fatal编程技术网

Javascript 从远程JSON创建对象

Javascript 从远程JSON创建对象,javascript,jquery,ajax,json,google-chrome-extension,Javascript,Jquery,Ajax,Json,Google Chrome Extension,我以前也发过帖子,但我觉得我有点太具体了,没有引起太多兴趣。我不熟悉javascript和AJAX,发现很难找到这个问题的简单答案。我的目标是简单地解析一些远程JSON,给我一个对象,然后我可以在应用程序的其余部分中使用它 我遇到的问题是使这个对象保持活动状态(使用XMLHttpRequest获取数据—它只在回调函数期间填充)。我有jQuery可用,如果这使答案更容易。javascript是GoogleChrome扩展的一部分,并且具有访问远程JSON的正确权限 希望有人能帮忙 编辑;来自原始帖

我以前也发过帖子,但我觉得我有点太具体了,没有引起太多兴趣。我不熟悉javascript和AJAX,发现很难找到这个问题的简单答案。我的目标是简单地解析一些远程JSON,给我一个对象,然后我可以在应用程序的其余部分中使用它

我遇到的问题是使这个对象保持活动状态(使用XMLHttpRequest获取数据—它只在回调函数期间填充)。我有jQuery可用,如果这使答案更容易。javascript是GoogleChrome扩展的一部分,并且具有访问远程JSON的正确权限

希望有人能帮忙

编辑;来自原始帖子的代码+Scott M的答案

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将为您提取此信息(并使其在所有浏览器中都能工作)让代码更容易编写,更容易预测。是的,今天下午我已经读了一些关于它的内容。我将尝试使用它的方法实现它。谢谢你的帮助