如何获得 JavaScript 变量?
How to get a JavaScript variable?
从包含(或引用)我的 JavaScript 的页面我向外部网站发出 AJAX XHR 请求。
我们 GET 上的外部网站 return 请求一个 JavaScript 文件,如下所示:
var __xxx = {
// ....
};
如何在我的 JavaScript 中获取变量 __xxx
的值?
目前,我发明的唯一方法是使用正则表达式删除 var __xxx
并使用 JSON 解析器解析其余部分。有没有更好的方法?
如有必要,外部网站可能被认为是可信的,但我宁愿不信任来自它的数据(使用一些安全的解析器,如 JSON)。
我相信你最好的选择是做你目前正在做的事情(解析字符串 Javascript 和 JSON.parse
它)或者对传入的 eval
使用方法 Javascript 字符串.
我个人建议解析字符串,但这取决于您从该端点返回的Javascript。 Eval 几乎可以肯定在任何一种情况下都有效,但可能很危险
使用字符串和 Function
构造函数创建一个新函数。添加 'return _xxx;' 并将结果分配给可在当前脚本中访问的新变量。
var returned_data = new Function(data + " return _xxx;")()
与 eval
相比, 更可取,因为函数的执行将不允许访问函数作用域外的局部变量。
从包含(或引用)我的 JavaScript 的页面我向外部网站发出 AJAX XHR 请求。
我们 GET 上的外部网站 return 请求一个 JavaScript 文件,如下所示:
var __xxx = {
// ....
};
如何在我的 JavaScript 中获取变量 __xxx
的值?
目前,我发明的唯一方法是使用正则表达式删除 var __xxx
并使用 JSON 解析器解析其余部分。有没有更好的方法?
如有必要,外部网站可能被认为是可信的,但我宁愿不信任来自它的数据(使用一些安全的解析器,如 JSON)。
我相信你最好的选择是做你目前正在做的事情(解析字符串 Javascript 和 JSON.parse
它)或者对传入的 eval
使用方法 Javascript 字符串.
我个人建议解析字符串,但这取决于您从该端点返回的Javascript。 Eval 几乎可以肯定在任何一种情况下都有效,但可能很危险
使用字符串和 Function
构造函数创建一个新函数。添加 'return _xxx;' 并将结果分配给可在当前脚本中访问的新变量。
var returned_data = new Function(data + " return _xxx;")()
与 eval
相比, 更可取,因为函数的执行将不允许访问函数作用域外的局部变量。