Benachrichtigungs-Popup Position ändern.

  • Hi,

    ich habe die suche schon bemüht und diesen sehr alten thread gefunden:
    https://www.camp-firefox.de/forum/viewtopi…&hilit=alertbox

    aber ich habe genau das gleiche problem bzw. den wunsch das popup zu verschieben.
    vielleicht in die mitte am unteren bildschirm oder direkt links oben unter der tableiste.

    dort steht zwar das dies nicht möglich ist, aber da der thread ja so alt ist und unzählige neue firefox versionen erschienen sind, dachte ich, dass es mit den aktuelleren versionen vielleicht machbar wäre.

    danke

  • in meinem fall um das von Update Scanner.
    jedoch glaube ich, dass das popup nicht auf ein Addon beschränkt ist, sondern eins ist, dass für alle Addons gilt, die eine Benachrichtigung über ein Popup Anzeigen wollen.

    im Dom Inspector heißt das fenster #alertNotification, aber mit Stylish konnte ich das popup leider nicht verschieben.

  • Mit einem about:config-Eintrag kann man das Popup in eine andere Ecke platzieren:
    https://github.com/Rob--W/stackex…ations/issues/3

    Mit einem userChromeJS-Skript lässt es sich auf eine beliebige Position setzen:

    Code
    (function() {
       if (location != 'chrome://global/content/alerts/alert.xul')
          return;		
    	const X = 100;
    	const Y = 200;		
    	window.moveTo(X, Y);
    })();


    X und Y sind die Koordinaten des Popups. Sie sind auf den Bildschirm bezogen und unabhängig von der Position und Größe des Fx-Fensters. Davon abhängige Koordinaten lassen sich auch machen.

    Hier kann man testen, indem man auf den Button klickt:
    https://mdn.mozillademos.org/en-US/docs/Web/API/notification$samples/Example

  • die beiden von dir angegebenen möglichkeiten funktionieren auf der von dir verlinkten testseite.
    jedoch bleibt das benachrichtigungs popup vom addon update scanner dort wo es ist.

    Edit:

    ich habe mal im userscript dashier: chrome://global/content/alerts/alert.xul
    mit: chrome://updatescan/content/alert.xul
    ersetzt und jetzt funktioniert funktionierts mit dem update scanner popup.

    wie müsste denn der code aussehen, damit die normalen popups und die vom update scanner angesprochen werden?
    einfach doppelt untereinander zweimal den code mit den unterschiedlichen locations?

    und wäre auch daran interessiert, wie der code abhängig vom firefox fenster aussieht, falls dies keine zu großen umstände macht.

    Edit2:
    hab ja ganz vergessen mich zu bedanken :oops: : also danke für deine bisherige hilfe :)
    auch dir danke andreas, ich lag da völlig falsch mit meiner annahme, dass die popups vom update scanner allgemeingültig angesprochen werden.

  • Zitat von cafide

    wie müsste denn der code aussehen, damit die normalen popups und die vom update scanner angesprochen werden?
    einfach doppelt untereinander zweimal den code mit den unterschiedlichen locations?


    Ja, das ist in Ordnung so.

    Zitat

    wie der code abhängig vom firefox fenster aussieht


    Es gibt verschiedene Angaben zur Position und Größe eines Fensters, aus denen wir eine Position des Popups berechnen können.
    Hier ist eine Auflistung:
    MDN - Window - Properties

    Als Beispiel setzen wir jetzt das Popup 100 px unter den oberen Rand und waagrecht in die Mitte des Fx-Fensters.
    Dazu benötigen wir die Werte von screenX und screenY, das sind die Koordinaten der linken oberen Ecke, und outerWidth, das ist die Breite.

    Im Code bezeichnet mainWindow das Fx-Fenster und window das Popup.

    Code
    (function() {
       if (location != 'chrome://updatescan/content/alert.xul')
    		return;
    	var mainWindow = Services.wm.getMostRecentWindow('navigator:browser');
    	var X = mainWindow.screenX + Math.round((mainWindow.outerWidth - window.outerWidth) / 2);
    	var Y = mainWindow.screenY + 100;
    	window.moveTo(X, Y);
    })();