KilliK Δημοσ. 16 Μαρτίου 2017 Δημοσ. 16 Μαρτίου 2017 Χαιρεται. Βρηκα τον παρακατω κωδικα απο ενα παλιο Chrome addon, ο οποιος κλεινει τα διπλα tabs. o κωδικας δουλευει μια χαρα αλλα η σειρα που κλεινει τα διπλα tabs ειναι απο αριστερα προς τα δεξια οπως κοιταμε την tab bar. πως μπορω να τον αλλαξω ωστε να το κανει αντιστροφα, δηλαδη να τα κλεινει απο δεξια προς αριστερα, ωστε απο τα διπλα tabs να κλεινουν τα πιο προσφατα και να μενουν ως μοναδικα τα πιο παλια. ο κωδικας: chrome.browserAction.onClicked.addListener(closeDuplicateTabsInCurrentWindow); chrome.tabs.onUpdated.addListener(countDuplicateSiblings); chrome.tabs.onRemoved.addListener(countDuplicateSiblings); function closeDuplicateTabsInCurrentWindow() { chrome.tabs.getAllInWindow(null, closeDuplicateTabs); } function countDuplicateSiblings(tab) { chrome.tabs.getAllInWindow(tab.windowId, countDuplicateTabs); } function closeDuplicateTabs(tabs) { processDuplicates(tabs, new Closer()); updateDisplay(new Display()); } function countDuplicateTabs(tabs) { var counter = new Counter(); processDuplicates(tabs, counter); updateDisplay(new Display(counter)); } function processDuplicates(tabs, implementation) { var processor = new DuplicateProcessor(implementation); for (var index in tabs) { processor.process(tabs[index]); } } function updateDisplay(display) { chrome.browserAction.setBadgeText({text: display.text}); chrome.browserAction.setTitle({title: display.title}); } function DuplicateProcessor(implementation) { this.cache = new TabCache(); this.implementation = implementation; this.process = function(tab) { var found = this.cache.exists(tab); if (found) { implementation.execute(this.nonSelected(found, tab)); } else { this.cache.remember(tab); } }; this.nonSelected = function(found, tab) { if (!found.selected) { this.cache.remember(tab); return found; } if (!tab.selected) { return tab; } return null; }; } function Counter() { this.count = 0; this.urls = ""; this.execute = function(tab) { this.count += 1; this.urls += tab.url + '\n'; }; } function Closer() { this.execute = function(tab) { chrome.tabs.remove(tab.id); }; } function TabCache() { this.tabs = []; this.exists = function(tab) { return this.tabs[tab.url.toLowerCase()]; }; this.remember = function(tab) { this.tabs[tab.url.toLowerCase()] = tab; }; } function Display() { this.title = "Tab Dupectomy"; this.text = ""; } function Display(counter) { this.title = counter.urls; this.text = ""; if (counter.count != 0) { this.text = counter.count + ''; } }
Alithinos Δημοσ. 17 Μαρτίου 2017 Δημοσ. 17 Μαρτίου 2017 Δεν έχω φτιάξει chrome plugin. Θα πρέπει να υπάρχει όμως ένα field στο framework του Chrome, το οποίο με κάποιο τρόπο θα σου επιτρέπει να μάθεις πιο ακριβώς tab είναι ποιο. Πχ υπάρχει field που να κρατά τη χρονική στιγμή που άνοιξε το κάθε tab ? Ή πόσο χρόνο συνολικά παραμένει ανοιχτό ? Στη περίπτωση που δεν υπάρχει ήδη τέτοιο πεδίο, μήπως θα μπορούσες να φτιάξεις ένα script όπου κάθε φορά που ανοίγει ένα νέο tab, καλείται μια συνάρτηση που παίρνει το date&time και το προσθέτει στο πεδίο ? Αν έχεις κάποιο τέτοιο πεδίο, φτιάξε μια συνάρτηση η οποία όταν θα βρει διπλότυπα tabs θα ελέγχει μεταξύ τους ποιο είναι το πιο πρόσφατο με βάση τη τιμή του πεδίου, και θα το προσθέτει στο νέο πίνακα. Στη συνέχεια πέρασε το νέο πίνακα ως argument στη συνάρτηση η οποία σβήνει τα διπλότυπα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα