отладка Chrome расширение - PullRequest
0 голосов
/ 02 июля 2011

У меня есть этот код:

...

  function init() {
      getdata();
  }

  var txt;
  function getdata() {
      var xhr = new XMLHttpRequest();
      xhr.open('GET',myurl, true);
      xhr.setRequestHeader('Cache-Control', 'no-cache');
      xhr.setRequestHeader('Pragma', 'no-cache');
      xhr.onreadystatechange = function() {
          if (xhr.readyState == 4) if (xhr.responseText) {
              txt = xhr.responseText;
          }
      }

      xhr.send();
      console.log(txt);
  }

...

<body onload="init();">

...

Почему я не могу получить txt значение? Пожалуйста помоги. забыл упомянуть - все это происходит на фоновой странице, у меня нет других страниц в данный момент. я попробовал консоль через обзор расширений для фоновой страницы, но эта консоль ничего не выводит ..: ((

Ответы [ 2 ]

1 голос
/ 02 июля 2011

XHR-запрос является асинхронным, поэтому, когда вы регистрируете txt на консоли сразу же после его отправки, запрос еще не завершен, поэтому txt равно undefined.

Либо установите его запуск синхронным, установив async в false в команде open, либо просто вставьте console.log(txt) в функцию, которую вы уже связали с событием onreadystatechange.

0 голосов
/ 02 июля 2011

Это потому, что onload вызывается после обработки скрипта и console.log. Также xdr - это undefined.

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