私はJavaScriptが比較的新しいので、かなりの質問があります。yahoo 金融の Web サービスから株式情報を取得し、Web サイトに表示するアプリケーションを作成し始めました。簡単ですね。私もそう思いましたが、返ってきたデータを操作するのに苦労しています。誰かが私がこれを機能させるのを手伝ってくれるかもしれません。この時点で、私は本当に近くにいるように感じます。
ユーザーは、AAPL や GOOG など、選択した株式を stockTextBox に入力します。次に、連結を使用してスクリプト属性を設定します。現在、confirm() 行は非常に奇妙です。そこにその確認がない場合、関数 myCallBack のアラートは実行されないようです。これはまったく説明できません。多分私は今私がすべきことをしていません。
ここでデバッグすると、株式情報がウェブサイトから返されていることがわかります。最初にコードがあり、次に JSON データがあります。誰かがこのことを機能させるのを手伝ってくれたら、心から感謝します。私は今、数時間それをいじっています。ありがとう!つまり、私の質問は、Web サービスから取得したデータを自分の Web ページに表示するにはどうすればよいかということです。
<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"
}
}
}
]
}
});