在downloadUrl中,回调函数参数的值是多少
In downloadUrl, what is the value of the callback function parameter
新信息开始通过改变"现有"代码中的一行(也就是说,在我借用的代码中),用responseText
替换responseXML
,我能够取得一点进展。这解决了一个关键问题,即变量details
现在包含所需的数据。
我还注意到,在查看包含util.js
的"工作示例"链接时,正在使用xmlParse(str)
的附加功能。我没有看到或理解xmlParse(str)
是如何使用的,但这可能是我对javascript的天真无知。
function xmlParse(str) {
if (typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined') {
var doc = new ActiveXObject('Microsoft.XMLDOM');
doc.loadXML(str);
return doc;
}
新版本的Google Maps (V3)使用XML,而之前没有,还是什么?无论如何,我可能需要打开一个关于我已经在main.js
中遇到的下一个错误的新问题,无论那是什么。
新信息结束
一个完整的重写开始
第一个脚本可以在这里找到。我添加了一些console.log()
结果来显示中间结果,以确认信息包含在request.responseText
中。
/**
* Returns an XMLHttp instance to use for asynchronous
* downloading. This method will never throw an exception, but will
* return NULL if the browser does not support XmlHttp for any reason.
* @return {XMLHttpRequest|Null}
*/
function createXmlHttpRequest() {
try {
if (typeof ActiveXObject != 'undefined') {
return new ActiveXObject('Microsoft.XMLHTTP');
} else if (window["XMLHttpRequest"]) {
return new XMLHttpRequest();
}
} catch (e) {
changeStatus(e);
}
return null;
};
/**
* This functions wraps XMLHttpRequest open/send function.
* It lets you specify a URL and will call the callback if
* it gets a status code of 200.
* @param {String} url The URL to retrieve
* @param {Function} callback The function to call once retrieved.
*/
function downloadUrl(url, callback) {
var status = -1;
var request = createXmlHttpRequest();
if (!request) {
return false;
}
request.onreadystatechange = function() {
if (request.readyState == 4) {
try {
status = request.status;
} catch (e) {
// Usually indicates request timed out in FF.
}
if (status == 200) {
console.log(request.responseText);
console.log(request.responseXML);
console.log(request.status);
callback(request.responseXML, request.status);
request.onreadystatechange = function() {};
}
}
}
request.open('GET', url, true);
try {
request.send(null);
} catch (e) {
changeStatus(e);
}
};
我的脚本的关键部分如下,问题是details
总是"空",可以从下面的日志读出进一步看出。但我也可以从console.log(request.responseText)
中看到,我需要的数据是真正可用的。
downloadUrl("details.txt?place=Playground",function(details) {
console.log('details: '+details);
if (details) {
var lines = details.split("'n");
}
}
下面是控制台日志。第一行是我希望在变量details
中捕获的信息,是request.responseText
的值,因为它代表一个地图引脚。
我如何改变我的代码,甚至是提供的现有代码,将我的变量details
与现有代码中的request.responseText
的结果挂钩?
ahdkZXZ-c2ltcGxpZnljb25uZWN0aW9uc3IlCxIFR3JvdXAiClBsYXlncm91bmQMCxIDUGluGICAgICAgIAKDA Thu 06 12 2014 1444 29.1109258712 -81.4114379883 Dad 0 0
util.js:42
null util.js:43
200 util.js:44
details: null ?place=Playground:114
downloadUrl()
的工作示例在这里。(我在理解如何调整工作示例时感到困惑的部分原因是它使用XML,而我的使用中没有涉及XML。)
一个完整的重写结束
对这个问题的简短回答是,实用程序util.js
内部的回调函数需要一个新的参数——request.responseText
——这个参数没有提供,也没有提到。不知不觉中,我关注的是脚本中调用函数的参数,而不是实用程序。
我也很困惑,调用函数的第二个参数是回调函数,但在回调函数本身中,需要调整的是第一个参数。愚蠢的我。
- 函数参数中的数据与指定变量之间的任何性能差异
- 使用Express捕获参数
- 参数变量出现ngTable指令问题
- AngularJS:我可以跳过函数参数回调吗
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 要求未定义JS回调参数
- 我的jQuery插件参数没有正确启动,遇到了问题
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- jquery设置为使用参数运行
- Javascript”;类“;带有参数的扩展
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 函数未将值作为参数传递
- 如何将参数传递到angularJs中的工厂
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 在 JavaScript 中有多少参数太多了
- JavaScript中被忽略的参数的值是多少
- 我可以在一个链接上使用多少个参数
- setTimeout和setinterval的第二个参数是必需的吗?如果不是,默认值是多少
- 在downloadUrl中,回调函数参数的值是多少
- 使用DOM和封装方法,用Javascript OOP传递参数.多少就太多了