Javascript开关语句未定义错误

Javascript switch statement undefined error

本文关键字:错误 未定义 语句 开关 Javascript      更新时间:2023-09-26

我正在执行这个AJAX请求在谷歌chrome扩展;在chrome控制台中记录一个错误:

<>之前未捕获的错误:参数1的值无效。期望'对象',但得到'字符串'。-扩展/extension_process_bindings.js: 66chromeHidden。66 .验证- extensions/extension_process_bindings.js(匿名函数)- extensions/extension_process_bindings.js:622xmlhttp。Onreadystatechange - pop .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();
}

根据Chrome扩展站点(和API)的示例,您需要传递一个对象(错误建议),而不仅仅是传递文本。

来自示例:

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

所以很可能你只需要:

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

调用setBadgeText函数的错误方法(http://code.google.com/chrome/extensions/browserAction.html)

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

应该工作。setBadgeBackgroundColor也是如此。

chrome.browserAction.setBadgeText采用Object而不是String(如错误消息所示)。这里是文档的链接。尝试将代码更改为:

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