0

.html() 関数と YQL プル データに問題があります。データはプルされています (YQL コンソールを使用するとデータを表示できます) が、結果が表示されていないか、表示されていません。

コードは次のとおりです。

HTML

<ul id="TECO-container">
    <li class="high">High: </li>
    <li class="low">Low: </li>
    <li class="close">Closing: </li>
    <li class="volume">Volume: </li>
</ul>

JS

// initialise plugins
jQuery(function () {
    tecoGetQuote('TECO');
});

//The above function is on a different .js than the below script.

var tecoGetQuote = function (symbol) {
    var yqlURL = "http://query.yahooapis.com/v1/public/yql?q=";
    var dataFormat = "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
    var realtimeQ = yqlURL + "select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + symbol + "%22)%0A%09%09&" + dataFormat;
    $(function () {
        $.getJSON(realtimeQ, function (json) { //YQL Request
            //console.log(json.query.results.quote);
            //<li class="high">High: -</li><li class="low">Low: -</li><li class="close">Closing: -</li><li class="volume">Volume: -</li>
            $('#TECO-container .high').html('High: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.DaysHigh + '</span>');
            $('#TECO-container .low').html('Low: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.DaysLow + '</span>');
            $('#TECO-container .close').html('Closing: <span style="font-weight: bold; color:#FFBB00">' + json.query.results.quote.PreviousClose + '</span>');
            $('#TECO-container .volume').html('Volume: <span style="font-weight: bold; color:#FFBB00">' + addCommas(json.query.results.quote.Volume) + '</span>');
        });
    });
};

JSFiddle は次のとおりです: http://jsfiddle.net/Darthfuzzy/cPFKE/4/

JSFiddle によると、HTML/JS は完全に有効です。すべての兆候は、それも実行する必要があることを示しています。結果には現在の市場データが表示されるだけであり、以前にサイトで同様の機能が表示されたのを見たことがあります。JS が実行されていない場所がわかりません。

スクリプトは非常に単純です。株式ティッカーは「TECO」です (tecoGetQuote として定義されます)。次に、その関数は YQL JSON から財務データを取得し、データを出力します。しかし、どういうわけか、どのように変更しても表示されません。

誰かが問題の場所を指摘して助けてくれませんか?

4

1 に答える 1

1

疑問に思っている人のために説明すると、コーディングに問題はなく、callback=? に問題がありました。JS に追加されていないため、アクセス制御許可オリジンの問題が発生しました。

XmlHttpRequest エラー: Origin null は Access-Control-Allow-Origin で許可されていません

var dataformat 行を次のように変更します。

var dataFormat ="&callback=&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";

問題を解決しました。

于 2013-02-05T16:21:25.660 に答える