我有很多问题,因为我在 javascript 方面相对较新。我开始编写这个应用程序,让用户从 yahoo Finance Web 服务获取股票信息并将其显示在网站上。听起来很容易对吧?我也是这么想的,但是我很难操纵要返回的数据。也许有人可以帮助我完成这项工作。我觉得我在这一点上真的很接近。
用户在 stockTextBox 中输入他们选择的股票,例如 AAPL 或 GOOG。然后我设置了一个带有连接的脚本属性。现在 confirm() 行很奇怪。如果我没有在那里确认,则函数 myCallBack 中的警报似乎没有执行。我根本无法解释这一点。也许我现在不应该做的事情。
现在,如果我进行调试,我可以知道股票信息是从网站返回的。首先是代码,然后是 JSON 数据。如果有人能帮助我让这件事发挥作用,我将不胜感激。我已经摆弄了几个小时了。谢谢你!换句话说,我的问题是如何将我从网络服务获得的数据显示到我的网页上?
<form id="stockInput">
Stock Name: <input type="text" id="stockTextBox">
<input type="submit" id="submitButton" value="Submit">
</form>
</b>
<label id="stockLabel"></label>
<script>
var submitButton = document.getElementById("submitButton");
submitButton.addEventListener('click', actionPerformed, false);
function actionPerformed(e)
{
var textValue = document.getElementById("stockTextBox").value;
//tried to put to an element and then read the element value down below through concatenation in the src...
//document.getElementById("stockLabel").innerHTML = textValue;
var script = document.createElement('script');
script.setAttribute('src',"http://finance.yahoo.com/webservice/v1/symbols/"+textValue+"/quote?format=json&callback=myCallBack");
document.body.appendChild(script);
confirm(); //ODD POINT...
}
function myCallBack(data)
{
alert("HEY" + data);
//What I thought I would do. This doesn't output the right info.
//for(key in data)
//{
//alert(data[key]);
//}
}
</script>
</body>
</html>
现在这是我可以通过 Firefox 在调试器中看到的 JSON:
myCallBack({
"list": {
"meta": {
"type": "resource-list",
"start": 0,
"count": 1
},
"resources": [{
"resource": {
"classname": "Quote",
"fields": {
"name": "Google Inc.",
"price": "1030.579956",
"symbol": "GOOG",
"ts": "1383249600",
"type": "equity",
"utctime": "2013-10-31T20:00:00+0000",
"volume": "1640035"
}
}
}
]
}
});