私は非常に単純なコードを持っています。2 つのパラメーターをチェックします。最初のパラメーターが false の場合、Chrome 拡張機能のポップアップ アイコンが変更されます。それが true で以前は false だった場合は、アイコンが元に戻り、パラメーターが渡されない場合は現在の値が返されます。
問題は、どちらの方法でも、ブール値として渡される変数と最初のパラメーターの両方が文字列として解釈され、予期しない結果が生じることです。これが私のコードです:
var status = true;
var reason;
function isReady(statusT, reasonT) {
"use strict";
if (statusT === false) {
chrome.browserAction.setIcon({
path : "img/blue-sharingan.png"
});
status = statusT;
if (reason !== undefined) {
reason = reasonT;
return;
}
return;
}
if (statusT === true && status === false) {
chrome.browserAction.setIcon({
path : "img/icon-32.png"
});
status = statusT;
reason = null;
return;
}
if (statusT === undefined && reasonT === undefined) {
return {
'status' : status,
'reason' : reason
};
}
}
https://stackoverflow.com/a/653934/792066を読みましたが、何が問題なのかまだわかりません。