jQuery .get (): переменная равна другой переменной, когда она не должна - PullRequest
0 голосов
/ 25 марта 2020

В настоящее время я разрабатываю расширение Chrome , которое должно отменить мою активность Inte rnet. Итак, прежде всего вот мой код JS (у меня есть только этот файл без учета manifest.json, jquery.js и lo go):

function getAllIndexes(arr, val) {
    var indexes = [], i = -1;
    while ((i = arr.indexOf(val, i+1)) != -1){
        indexes.push(i);
    }
    return indexes
}

chrome.tabs.onUpdated.addListener(function (tabId, info) {
    if(info.status === 'complete') {
        chrome.tabs.executeScript({
            code: "document.documentElement.outerHTML"
        }, function(result) {
            if (!chrome.runtime.lastError) {

              var el = document.createElement( 'html' );
              el.innerHTML = result[0];

              var scraping = [
                {
                  "url": "",
                  "title": "",
                  "text": "",
                  "ranking_word": {},
                  "a": [],
                  "img": [],
                  "html": ""
                }
              ]

              chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
                scraping[0]["url"]= tabs[0].url;
              });

              var head = el.getElementsByTagName('head');
              for (var i = 0; i < head.length; i++) {
                scraping[0]["title"] = head[i].getElementsByTagName('title')[0].innerHTML;
              }

              var a = el.getElementsByTagName('a');
              for (var i = 0; i < a.length; i++) {
                scraping[0]["a"].push(a[i].href);
              }

              var img = el.getElementsByTagName('img');
              for (var i = 0; i < img.length; i++) {
                scraping[0]["img"].push(img[i].src);
              }

              var txt = "";
              var text_in_body = [];
              var body = el.getElementsByTagName('body');
              for (var i = 0; i < body.length; i++){txt += body[i].textContent;}
              txt = txt.split("\n");
              for (var i = 0; i < txt.length; i++){txt[i] = txt[i].split(" ")}
              for (var i = 0; i < txt.length; i++) {for (var a = 0; a < txt.length; a++){if (txt[i][a] == " " || txt[i][a] == "" || txt[i][a] == "," || txt[i][a] == "." || txt[i][a] == "!" || txt[i][a] == "?" || txt[i][a] == ";"){delete txt[i][a];}}}
              for (var i = 0; i < txt.length; i++) {text_in_body = text_in_body.concat(txt[i])}
              scraping[0]["text"] = text_in_body.join(" ");

              ranking_word = {}
              for (var i = 0; i < text_in_body.length; i++) {
                ranking_word[text_in_body[i]] = getAllIndexes(text_in_body, text_in_body[i]).length;
              }
              scraping[0]["ranking_word"] = ranking_word;

              scraping[0]["html"] = result;

              var response = $.get("https://api.myjson.com/bins/1e0ybo", function(data, textStatus, jqXHR) {
                if (textStatus == "success") {
                  console.log("%cSuccess: Getting Data", 'background-color: #8cc2e6; color: #000');

                  console.log(response.responseJSON);
                  console.log(scraping);
                  var newJSON = Object.assign(response.responseJSON, scraping);
                  console.log(newJSON)

                  $.ajax({
                    url:"https://api.myjson.com/bins/1e0ybo",
                    type:"PUT",
                    data:JSON.stringify(newJSON),
                    contentType:"application/json; charset=utf-8",
                    dataType:"json",
                    success: function(data, textStatus, jqXHR){
                      console.log("%cSuccess: Uploading Data", 'background-color: #8cc2e6; color: #000')
                    }
                  });
                }
              });

            }
        });
    }

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

В строках 72, 73 и 75 я поставил console.log(), чтобы проверить, что все переменные имеют значения, которые они должны иметь, за исключением того, что это не так (как Вы можете видеть на скриншоте консоли ниже).

Я не понимаю, почему мое значение response.responseJSON (я тоже пробовал с данными, но оно дало мне то же самое) и моя переменная очистки равны, они не должны не быть. Я проверил, что в моем файле, где я получаю данные, нет этих значений, но нет ...

Кто-нибудь знает, как это исправить?

Скриншот

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...