1

最近フォーカスされたウィンドウに関連する位置に新しいウィンドウをポップアップ表示する Chrome 拡張機能を作成しようとしています。chrome.windows.getCurrentこれを行うためにorchrome.windows.getLastFocusedメソッドを適切に使用しているとは思いません。そのたびにundefined、そのウィンドウのプロパティを表示しようとするとアラートが表示されます。

私の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 ドキュメントを読んで、実際にウィンドウの属性を返す方法について混乱しました。誰かがここで光を当てることができますか?

4

1 に答える 1

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。そのため、aを渡してからウィンドウ情報をgetCurrentInfo()渡す関数が必要でした。tabchrome.windows.getCurrent()

于 2013-02-01T00:37:11.227 に答える