2011-12-21 89 views
0

我在google chrome擴展中排除了這個AJAX請求;其中記錄一個錯誤的鉻控制檯:Javascript switch語句undefined error

 
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(); 
} 

回答

4

根據sample from the Chrome extension siteand the API),您需要傳遞一個對象(錯誤建議)而不是傳遞文本。

從樣本:

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

所以有可能你只需要:

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

謝謝。工作過一種享受! – ACarter 2011-12-21 11:53:24

2

錯誤方式調用setBadgeText函數(http://code.google.com/chrome/extensions/browserAction.html

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

應該可以工作。 setBadgeBackgroundColor也是如此。

+0

謝謝,儘管它的背景顏色和以前一樣正常工作。 (也許我只是使用默認) – ACarter 2011-12-21 11:42:27

2

chrome.browserAction.setBadgeText需要一個Object,而不是一個String(由您的錯誤信息所示)。這是一個鏈接到documentation。嘗試將您的代碼更改爲:

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

謝謝。我曾經看過那個頁面,但它讓我感到困惑,ojects..strings..integers ... – ACarter 2011-12-21 11:41:14