[英]assign a url output to a variable in javascript
下面的代码运行良好。 我是ajax的新手。 需要将第6行的url调用的输出(如“ http://test.com/test.php ”)分配给变量json3。url调用的输出看起来像{“ inp1:val1”:{“ data “:[[1378267200000,0.0743],[1378270800000,0.1787]]}}
目前,我有这样的硬编码,例如var json3 = {“ inp1:val1”:{“ data”:[[1378267200000,0.0743],[1378270800000,0.1787]]}}
<html>
<head>
<title>JSON to CSV</title>
<script src="json.js" type="text/javascript"></script>
<script type="text/javascript">
var json3 = { "inp1:val1": { "data": [ [ 1378267200000, 0.0743 ], [ 1378270800000, 0.1787 ] ] }}
DownloadJSON2CSV(json3["inp1:val1"].data);
function DownloadJSON2CSV(objArray)
{
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
line += array[i][index] + ',';
}
line.slice(0,line.Length-1);
str += line + '\r\n';
}
window.open( "data:text/csv;charset=utf-8," + escape(str))
}
</script>
</head>
<body>
<h1>This page downloads csv....</h1>
</body>
</html>
谢谢你的帮助
你可以试试看
<script type="text/javascript">
var xmlhttp;
var txt,x,i,json3;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
json3 = eval(xmlhttp.responseText);
DownloadJSON2CSV(json3["inp1:val1"].data);
}
xmlhttp.open("GET","http://test.com/test.php",true);
xmlhttp.send();
}
function DownloadJSON2CSV(objArray)
{
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
line += array[i][index] + ',';
}
line.slice(0,line.Length-1);
str += line + '\r\n';
}
window.open( "data:text/csv;charset=utf-8," + escape(str))
}
</script>
让我知道。
我将其更多地视为一种设计决策,而不是将其实现的方法。
如果应该在加载数据时在页面上立即存在数据,并且假设您具有动态后端,则可以查询(某些格式化并返回页面HTML的后端语言),那将是明智的。以便在加载页面时立即填充该变量。
如果您确实需要查询该数据,并且应该在页面加载时对其进行处理,请在页面初始化时通过在HTML的开头插入ajax调用(在加载所有库并当需要使用脚本标签时,请在进行调用之前初始化将在全局上下文中可用的变量( json3 )。
如果在给变量赋值后应该发生某些事情,请采用异步回调,该回调将在ajax调用完成时被调用:
function doAjaxCall(callback) { //your ajax call here //and within your ajax success/failure handler: callback(value); } //your callback function function myCallback(value) { //do something with value here, such as alert(value); } //and invoke it with doAjaxCall(myCallback);
我的建议的主要要点是要包含一个事实,除非您能够应付Ajax调用的异步特性(这正是A在Ajax中的含义),否则您将不知道何时为变量分配值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.