2013-01-31 86 views
1

我正在嘗試創建一個Chrome擴展程序,該擴展程序將在相對於最近聚焦的窗口的位置上彈出一個新窗口。我不認爲我正在使用chrome.windows.getCurrentchrome.windows.getLastFocused方法來做到這一點。每當我嘗試顯示該窗口的屬性時,都會收到undefined提醒。Chrome擴展程序相對於當前窗口打開彈出框

在我background.js文件,我有:

chrome.pageAction.onClicked.addListener(showPopup); 
function showPopup() { 
    var left = chrome.windows.getCurrent(function (w) { 
    w.left - 200; 
    // also tried: return w.left - 200; 
    }); 
    alert(left); // undefined 
} 

閱讀chrome.windows API docs離開我困惑於如何實際返回窗口的屬性。任何人都可以在這裏發光?

回答

0

我不知道是否有另一種(或更好)的方式來做到這一點,但我得到這個工作:

chrome.pageAction.onClicked.addListener(getCurrentInfo); 
function getCurrentInfo() { 
    chrome.windows.getCurrent(showPopup); 
} 
function showPopup(win) { 
    alert(win.left); // correct pixel count from left 
} 

我最初的嘗試是錯誤的,因爲我試圖返回從一個值get()回調函數並將其放置到變量中。這實質上評估爲var left = chrome.windows.get(winId, 790),這是一個無效的函數調用。而不是,我的電話chrome.windows.create()需要裏面的的回調函數。

此外,之前的錯誤是,點擊偵聽器使用參數tab調用函數,而不是參數window。所以我需要getCurrentInfo()函數傳入tab,然後傳入chrome.windows.getCurrent()來傳入窗口信息。

相關問題