我已经读过一些材料,它说eval是邪恶的,可以用某种方法代替eval。
下面的代码段可以调用sinajs股票价格api,当您在input
中键入某公司的股票代码时,其价格将显示在console.log的窗口中,例如输入600020
。
function stock(){
ticker = $("#code").val();
$.ajax({
type : "GET",
url : "http://hq.sinajs.cn/list=sh" + ticker,
dataType : "script",
cache : "false",
timeout : 2000,
success : function(data) {
sname = eval("hq_str_sh" + ticker);
console.log(sname);},
error : function() {alert("wrong");}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
tiker:
<input id="code" type="text" size="10">
<input id="Search" type="button" onclick="stock()" value="query">
对于下面的代码片段,如何用某种方法替换eval函数?
success : function(data) {
sname = eval("hq_str_sh" + ticker);
console.log(sname);},
这是我的尝试
success : function(data) {
window["myTicker"] = "hq_str_sh" + ticker;
console.log(myTicker);},
失败。
答案 0 :(得分:0)
您可以解析响应。
data.substring(4, c.length - 1).split("=")[1];
这将是通过var部分的响应,且不带尾部;将其分割为=符号,并且数据是数组的第二个元素。
答案 1 :(得分:0)
console.log(窗口[“ hq_str_sh” +滚动条])