Sie scheinen nach chrome.pageAction.setIcon()
zu suchen.
Ich habe den Code neu geschrieben, um ein bisschen lesbarer zu sein. Ich habe Ihre Verwendung von Bitwise NOT, ~
, zu einem Test für !== -1
geändert. Ich verwendete .some()
, um beide durch die urlList
(ein neues Objekt, das sowohl URLs als auch die Symbole enthält) zu durchlaufen und anzuzeigen, ob eine Übereinstimmung gefunden wurde, so dass das Seitenaktions-Icon ausgeblendet werden konnte, wenn die URL nicht übereinstimmte. Ich nahm an, du wolltest es bei einem Nicht-Spiel versteckt haben, vorausgesetzt, dass du es warst, als es ein Match gab.
var urlList=[{
url:"URL1",
icon:"/URL1icon.png"
},
{
url:"URL2",
icon:"/URL2icon.png"
}];
chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab){
if(!urlList.some(function(urlInfo){
if(tab.url.indexOf(urlInfo.url) !== -1) {
//The urlInfo.url must match the beginning of the tab's current URL.
chrome.pageAction.show(tabId);
chrome.pageAction.setIcon(tabId,{
path:urlInfo.icon
});
return true;
}
return false;
})) {
//Hide the icon if the URL does not match.
chrome.pageAction.hide(tabId);
}
});
Bitte formatieren Sie Ihren Code zur besseren Lesbarkeit. – jacefarm
Bitte: Verwenden Sie Variablennamen, die beschreiben, was sie darstellen. Sie kosten nur wenige Zeichen, verbessern aber deutlich die Lesbarkeit/Wartbarkeit. Vorschlagen: Verwenden Sie Code-Blöcke '{}', um Schleifen und/oder bedingte Anweisungen anzuzeigen, insbesondere mit einer Bedingung als einziger Anweisung in einer Schleife. Vielleicht: ['.some'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some) anstelle der aktuellen Schleife. Die Verwendung eines bitweisen NOT '~' kann unbeabsichtigte Konsequenzen haben (im Vergleich zu anderen Vergleichen oder logischem NOT '!'). Normalerweise ist das ** Coding kein Wettbewerb, um die wenigsten Bytes zu verwenden. ** – Makyen