Оператор переключения Javascript неопределенная ошибка - PullRequest
0 голосов
/ 21 декабря 2011

Я превышаю этот запрос AJAX в расширении Google Chrome;который регистрирует ошибку в консоли Chrome:

Uncaught Error: Invalid value for argument 1. Expected 'object' but got 'string'. - extensions/extension_process_bindings.js:66

chromeHidden.validate - extensions/extension_process_bindings.js:66

(anonymous function) - extensions/extension_process_bindings.js:622

xmlhttp.onreadystatechange - popup.html:362

Хотя в моем коде есть только одна из этих ошибок, я думаю, что это этот раздел (помечена строка, помеченная)

var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    if (xmlhttp.responseText != 0)
      {
      chrome.browserAction.setBadgeText(xmlhttp.responseText); // LINE 362 - FINAL ERROR
      chrome.browserAction.setBadgeBackgroundColor(255,0,0,255);
      document.getElementById("alerts").innerHTML = xmlhttp.responseText;
      }
    }
  }
xmlhttp.open("GET","http://adams-site.x10.mx/checkalerts.php?

day="+dayname,true);
xmlhttp.send();
}

Ответы [ 3 ]

4 голосов
/ 21 декабря 2011

Согласно образцу с сайта расширения Chrome ( и API ) вам нужно передать объект (что и предлагает ошибка) вместо простой передачи текста.

Из образца:

chrome.browserAction.setBadgeText({text:String(i)});

Скорее всего, вам просто нужно:

chrome.browserAction.setBadgeText({text: xmlhttp.responseText });
2 голосов
/ 21 декабря 2011

chrome.browserAction.setBadgeText принимает Object, а не String (как указано в сообщении об ошибке). Вот ссылка на документацию . Попробуйте изменить код на:

chrome.browserAction.setBadgeText({
    text: xmlhttp.responseText
});
2 голосов
/ 21 декабря 2011

Неправильный способ вызова функции setBadgeText (http://code.google.com/chrome/extensions/browserAction.html)

chrome.browserAction.setBadgeText({text: xmlhttp.responseText});

должно работать. То же самое верно и для setBadgeBackgroundColor, кстати.

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