- Firefox-Version
- Mypal 68.14.5b, ein Firefox 68 Fork, aber mit einem CSS Level von 85 und einem JavaScript Level von 88
- Betriebssystem
- Windows XP Professional SP3 mit allen POSReady Updates
Hallo! Ich verfolge schon seit Jahren den Thread "Individuelle Anpassungen". Zuerst einmal mein Kompliment an alle, die hier für den Browser Firefox Stylesheets, Skripte und Anpassungen bereitstellen, und darüberhinaus Hilfestellungen geben, wenn nichts mehr geht. Eigentlich bin ich jemand, der all seine JavaScript- oder CSS-Probleme selbst in den Griff bekommt. Heute habe ich jedoch entschieden, mich hier anzumelden und die Community bei einem Problem in JavaScript um Rat zu fragen, da ich irgendwie mit meinem Latein am Ende bin. Da ich in Foren seit Jahren nur in der englischen Sprache schreibe, ist es für mich ein Novum, hier in meiner Muttersprache zu posten. Mal sehen, wie das läuft. Jetzt aber in media res.
Ich habe ein uc.js Skript erstellt, dass bei einem Mittelklick auf den vom Skript erzeugten Toolbarbutton eine XUL Datei in einem neuen Fenster des Browsers aufruft. Es handelt sich um die interne Datei "chrome://browser/content/preferences/clearSiteData.xul". Dieses Fenster mit dem Namen "Clear Data" (der Browser ist momentan nur in englischer Sprache verfügbar) wird von meinem Skript erfolgreich in der Größe und Position verändert, und verrichtet seinen Dienst bis auf den Button "Cancel", der auf internen Browser-Code zugreift, der aber von diesem Fenster aus nicht erreichbar ist. Bedauerlicherweise schaffe ich es nicht, durch mein Skript auf Elemente dieses Fensters zuzugreifen.
Hier ein Teil des Codes von meinem Skript, der ordnungsgemäß funktioniert :
Spoiler anzeigen
// Aufruf des Chrome-Fensters
var w2 = 400; // Set custom width of the clearSiteData.xul window
var h2 = 190; // Set custom height of the clearSiteData.xul window
var l2 = (screen.width-w2)/2;
var t2 = (screen.height-h2)/2;
CSD = window.open("chrome://browser/content/preferences/clearSiteData.xul","cleardata","chrome,dialog,dependent,left=" + l2 +",top=" + t2 +",width=" + w2 +",height=" + h2 +"");
CSD.resizeTo(w2,h2);
CSD.focus();
Und nun der Teil des Codes, der in meinem Skript nicht funktioniert :
Spoiler anzeigen
wobei der Button mit dem Namen "Cancel" in diesem Fenster die ID "cancelButton" besitzt. Wenn das Fenster mit der Datei "chrome://browser/content/preferences/clearSiteData.xul" geöffnet ist, und ich im Scratchpad, das mit dem Environment "Content" läuft, folgendes eingebe:
Spoiler anzeigen
funktioniert der Code einwandfrei, und das Fenster wird bei Klick auf den Button "Cancel" geschlossen. Mein Problem ist also der Zugriff auf Elemente dieser XUL Datei von meinem Skript aus, das anscheinend im Environment "Browser" läuft und von dort aus das Fenster mit seinen Elementen nicht erreicht. Kann man mit einem uc.js Skript überhaupt auf die Elemente eines solchen Fensters zugreifen? Und wenn ja, wie bekomme ich in meinem Skript denselben Zugriff, den das Scratchpad im Environment "Content" hat? Ich habe schon viel probiert mit gBrowser, EventListener, DOMContentLoaded, location usw., aber nichts davon hat etwas gebracht. Wenn mehr Informationen benötigt werden, dann bitte hier posten. Ich werde sie dann nachreichen. Jede fachliche Hilfe oder Stellungnahme ist gewünscht und willkommen. Aber bitte keine Diskussionen oder Statements, warum jemand noch Windows XP benutzt, da solche natürlich off-topic und nicht zielführend sind. Und hier geht es ja schließlich um JavaScript in einem Firefoxbrowser. Vielen Dank schon mal im voraus!