Wir schreiben aber hier ja Code für möglichst alle User und Fälle.
Da will ich Dir auch gar nicht widersprechen![]()
Es ist nur so, dass ich bei allen Events von 'popupshowing' auf 'popupshown' umstellen musste.
Bei bmbMenu funktionierte auch noch alles mit "doppeltem" Aufruf,
jedoch beim Aufruf des Lesezeichenmenüs (bookMenu) schon nicht mehr.
Da wurden die Counter gar nicht mehr angezeigt.
Und nutze ich da nur 'popupshowing', tritt halt das beschriebene Problem auf.
In der Lesezeichenleiste gleiches! Also überall 'popupshown' in Verwendung.
@Horstmann Und Du hast den gleichen Fehler wie ich begangen!
BrokenHeart hat mich darauf hingewiesen! Klammern, es fehlen Klammern.
Hier noch einmal Deine zweite Version mit diesen Klammern.
let bmbMenu = document.getElementById('bookmarks-menu-button');
let bookMenu = document.getElementById('bookmarksMenu');
let persToolBar = document.getElementById('PersonalToolbar');
let bmbMenuPop = document.getElementById('BMB_bookmarksPopup'); // neu
if(bmbMenu) {
bmbMenu.addEventListener('popupshown', onPopupShowing ); // popupshowing => popupshown
}
if(bmbMenuPop) {
bmbMenuPop.addEventListener('popupshowing', onPopupShowing ); // neu
}
if(bookMenu) {
bookMenu.addEventListener('popupshown', onPopupShowing ); // popupshowing => popupshown
}
if(persToolBar) {
persToolBar.addEventListener('popupshowing', onPopupShowing );
}
Alles anzeigen
Und da diese Version ohne Nebenwirkungen funktioniert,
werde ich das so übernehmen.
Nur als Kommentar, anstatt /* neu */ schreibe ich da /* extra für Mac erforderlich */
So etwas hatten wir schon einmal in einem Skript, dass es für Mac extra Code sein musste.