2011-07-02 2 views
-1

У меня есть этот код:отладки хром расширение

... 

    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 значение? Пожалуйста помоги. забыл упомянуть - все это происходит на странице фона, у меня нет других страниц на данный момент. я попытался с помощью консоли Обзор расширений для фона страницы, но выходной консоль оленьей кожи ничего ..: ((

+0

Знаете ли вы [Firebug] (http://getfirebug.com)? Или консоль Chrome? –

+0

см. Мое обновление .. – DrStrangeLove

+0

Да, но ваш код не работает, вам не хватает кода '{' где-то. –

ответ

1

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

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

+0

Это не просто плохой отступ, я считаю, что это потому, что в опубликованном коде отсутствует что-то или оно написано безвозвратно. Без дополнительной информации мы не узнаем. –

+0

Я попытался вставить console.log (txt) сразу после txt = xhr.responseText; но он не помог ..: (( – DrStrangeLove

+0

Что «if (xhr.readyState == 4) if (xhr.responseText)» должно означать? – Acorn

0

Его, потому что onload вызывается после того, как сценарий был обработан и console.log был назван Также xdr является undefined

..
+0

'console.log' не был вызван, поскольку он находится в функции' getdata() '. Но я признаю, что плохой отступ делает несколько трудным рассказать. – Acorn

+0

Я бы предположил, что правильно написанный сегмент кода может решить эту проблему. –

+0

Ах, вы правы, это совершенно неправильно. – Acorn

Смежные вопросы