将脚本标记添加为STRING以获取JSON-P不起作用

时间:2016-06-17 16:43:02

标签: javascript json string jsonp

经过大量调整后,我的代码就出现了:

var twitchApp = (function () {

 var streamers = ["ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
 var url = 'https://api.twitch.tv/kraken/streams/';
 var body = document.body;
 var container = document.getElementById('container');
 var cb = "?callback=twitchApp.handleJSON";

// function addScriptTags() {
//  streamers.forEach(function (streamer) {
//      var script = document.createElement("script");
//      body.appendChild(script);
//      script.src = url + streamer + cb;
//      body.removeChild(script);
//  });
//
// }


function addScriptTags() {

    var scriptTags = streamers.map(createScriptTag).join("\n");

    body.innerHTML += scriptTags;

}

function createScriptTag(streamer) {
    var src = "src=\"" + url + streamer + cb + "\"";
    var script = "<script " + src + "></script>";

    return script;
}

var handleJSON = function (data) {
    var prepareData = data;
    console.log(data);
};
    function addStreamers(streamerName) {
    streamers.push(streamerName);
}

function removeStreamer(streamerName) {
    streamers = streamers.map(function (streamer) {
        return streamer !== streamerName;
    });
}

return {
    handleJSON: handleJSON,
    addScriptTags: addScriptTags,
    addStreamers: addStreamers,
    removeStreamer: removeStreamer
};

 })();

 twitchApp.addScriptTags();

我使用此代码来获取Twitch关于当前流媒体的Api信息。我应该得到有关飘带阵列中所有飘带的信息。 为了“性能”(没关系)我想将所有脚本标签连接到单个字符串而不是触摸DOM 8次。但是不可能以这种方式收集JSON。当我在开发人员工具上检查它时,脚本标签被正确添加,但他们没有向我发送任何JSON。

注释掉代码是它工作的唯一方式。我在创建一个脚本标记并将其.src属性替换为不同的流式传输之前尝试过,但它仅适用于阵列中的第一个流式传输器。
那么告诉我为什么不可能这样做呢?

0 个答案:

没有答案