我的chrome.tabs.query代碼在調試器中查找我的擴展時似乎沒有執行。我正在嘗試使用chrome.storage API來記錄訪問nytimes.com文章的次數,並且由於我在開始時添加了chrome.storage代碼,因此調試器似乎不會進入chrome.tabs.query功能。自chrome.storage加入後代碼看起來沒有執行
var nytCount = chrome.storage.local.get["nyt"];
// if nytCount doesn't exist in chrome local storage, set to 0
if (nytCount === undefined)
{
nytCount = 0;
}
/*
* Below is adapted from user Rob W at Stack Overflow (http://stackoverflow.com/questions/10413911/how-to-get-the-currently-opened-tabs-url-in-my-page-action-popup/10417327#10417327)
*
// Gets URL from currently active window (this should all be onload I suspect)*/
chrome.tabs.query({
// Select active tabs
active: true,
// In the current window
windowId: chrome.windows.WINDOW_ID_CURRENT
}, function(array_of_Tabs) {
// Since there can only be one active tab in one active window, the array has only one element
var tab = array_of_Tabs[0];
var title = tab.title;
if (title.indexOf("NYTimes.com") !== -1)
{
nytCount++;
}
// rest of if conditions for those sites that have identifiers in tab titles
});
alert(nytCount);
任何想法?在我將nytCount初始化爲0之前,它工作得很好,但是當然它的值只能在下一次代碼重新初始化之前上升到1。
謝謝,羅布 - 你很有幫助! 「+」是什麼意思在「var nytCount = + localStorage.getItem('nyt')|| 0;」? – Zhankfor 2013-02-28 18:29:24
@Zhankfor它「將」值轉換爲數字。 'localStorage.getItem('nyt')'可以返回'null'。 +0會返回0.它也可能包含一個無效的值,比如一個字符串。在這種情況下,一元'+'運算符會返回'NaN'。 '0'和'NaN'都是錯誤的,所以當OR運算符進入時,右邊的表達式被計算出來,它是0.最終的結果是有效的字符串被轉換爲數字,無效的數字被替換爲零。 – 2013-02-28 18:32:40
再次感謝。我已經使用了你的代碼,但是調試器似乎並不想在「chrome.storage.local.get('nyt',函數(items)」)之後進入花括號。現在看起來像這樣: 'var nytCount = + localStorage。getItem('nyt')|| 0; console.log(nytCount); chrome.tabs.onUpdated.addListener(功能(tabId,changeInfo,標籤) { 變種URL = changeInfo.url; //字符串或未定義 如果(changeInfo.status == '完成' && URL &&網址。的indexOf( 「NYTimes.com」)== -1){ localStorage.setItem( '紐約時報',++ nytCount);} !' (抱歉它是如此凌亂) – Zhankfor 2013-02-28 18:44:12