Beiträge von aborix
-
-
Das Skript für userChromeJS funktioniert nun auch vollständig.
Die Buttons sind bei jedem Aufruf der Seite vorhanden.Code
Alles anzeigen(function () { if (location != 'chrome://browser/content/browser.xul') return; window.addEventListener('DOMContentLoaded', function () { if (content.location != 'chrome://browser/content/aboutDialog.xul') return; var doc = content.document; var aboutDialogContainer = doc.getElementById('aboutDialogContainer'); var launchBox = doc.createElement('hbox'); aboutDialogContainer.appendChild(launchBox); launchBox.setAttribute('id','launchBox'); launchBox.innerHTML = '\ <button id="aD-downloads" label="Downloads" class="aD-launchButton"/>\ <button id="aD-bookmarks" label="Lesezeichen" class="aD-launchButton"/>\ <button id="aD-history" label="Chronik" class="aD-launchButton"/>\ <button id="aD-addons" label="Add-ons" class="aD-launchButton"/>\ <button id="aD-sync" label="Sync" class="aD-launchButton"/>\ <button id="aD-settings" label="Einstellungen" class="aD-launchButton"/>\ '; function buttonfunc(id, command, param) { doc.getElementById(id).addEventListener('click', function (event) { if (event.button == 0) command(param); }); }; buttonfunc('aD-downloads',PlacesCommandHook.showPlacesOrganizer,'Downloads'); buttonfunc('aD-bookmarks',PlacesCommandHook.showPlacesOrganizer,'AllBookmarks'); buttonfunc('aD-history',PlacesCommandHook.showPlacesOrganizer,'History'); buttonfunc('aD-addons',BrowserOpenAddonsMgr,null); buttonfunc('aD-sync',openPreferences,'paneSync'); buttonfunc('aD-settings',openPreferences,null); }); }) ();
Man kann jetzt also wählen, userChromeJS oder Scriptish.
-
-
Jeder Beitrag zählt, auch der kleinste Hinweis kann von Nutzen sein.
Außerdem hatte ich es ohnehin als gemeinschaftliches Unternehmen gesehen, weil ich nur die Struktur liefern wollte.
Ganz perfekt ist das Skript übrigens nicht:
Verschiebt man die Startseite in ein anderes Fenster, dann wird bei den letzten drei Buttons beim Klick manchmal das alte Fenster in den Vordergrund geholt.
Aber das würde für verschiedene Buttons unterschiedliche Lösungen erfordern und wird daher nicht gefixt!
Ich habe im Code noch die überflüssige Variable doc entfernt und die Variable mainWindow in chromeWindow, weil passender, umbenannt:
Code
Alles anzeigen// ==UserScript== // @name aboutDialog // @include chrome://browser/content/aboutDialog.xul // ==/UserScript== var aboutDialogContainer = document.getElementById('aboutDialogContainer'); var launchBox = document.createElement('hbox'); aboutDialogContainer.appendChild(launchBox); launchBox.setAttribute('id','launchBox'); launchBox.innerHTML = '\ <button id="aD-downloads" label="Downloads" class="aD-launchButton"/>\ <button id="aD-bookmarks" label="Lesezeichen" class="aD-launchButton"/>\ <button id="aD-history" label="Chronik" class="aD-launchButton"/>\ <button id="aD-addons" label="Add-ons" class="aD-launchButton"/>\ <button id="aD-sync" label="Sync" class="aD-launchButton"/>\ <button id="aD-settings" label="Einstellungen" class="aD-launchButton"/>\ '; var chromeWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShellTreeItem) .rootTreeItem .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindow); function buttonfunc(id, command, param) { document.getElementById(id).addEventListener('click', function (event) { if (event.button == 0) command(param); }); }; buttonfunc('aD-downloads',chromeWindow.PlacesCommandHook.showPlacesOrganizer,'Downloads'); buttonfunc('aD-bookmarks',chromeWindow.PlacesCommandHook.showPlacesOrganizer,'AllBookmarks'); buttonfunc('aD-history',chromeWindow.PlacesCommandHook.showPlacesOrganizer,'History'); buttonfunc('aD-addons',chromeWindow.BrowserOpenAddonsMgr,null); buttonfunc('aD-sync',chromeWindow.openPreferences,'paneSync'); buttonfunc('aD-settings',chromeWindow.openPreferences,null); -
Ich glaube, ich hab's.
Testet bitte folgendes Skript in Scriptish.
Die Änderungen von Endor sind schon drinnen.Dazu in den Scriptish-Einstellungen bei Erweitert → Zusätzliche Protokolle das chrome Protokoll anhaken.
Code
Alles anzeigen// ==UserScript== // @name aboutDialog // @include chrome://browser/content/aboutDialog.xul // ==/UserScript== var doc = document; var aboutDialogContainer = doc.getElementById('aboutDialogContainer'); var launchBox = document.createElement('hbox'); aboutDialogContainer.appendChild(launchBox); launchBox.setAttribute('id','launchBox'); launchBox.innerHTML = '\ <button id="aD-downloads" label="Downloads" class="aD-launchButton"/>\ <button id="aD-bookmarks" label="Lesezeichen" class="aD-launchButton"/>\ <button id="aD-history" label="Chronik" class="aD-launchButton"/>\ <button id="aD-addons" label="Add-ons" class="aD-launchButton"/>\ <button id="aD-sync" label="Sync" class="aD-launchButton"/>\ <button id="aD-settings" label="Einstellungen" class="aD-launchButton"/>\ '; var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) .QueryInterface(Components.interfaces.nsIDocShellTreeItem) .rootTreeItem .QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindow); function buttonfunc(id, command, param) { doc.getElementById(id).addEventListener('click', function (event) { if (event.button == 0) command(param); }); }; buttonfunc('aD-downloads',mainWindow.PlacesCommandHook.showPlacesOrganizer,'Downloads'); buttonfunc('aD-bookmarks',mainWindow.PlacesCommandHook.showPlacesOrganizer,'AllBookmarks'); buttonfunc('aD-history',mainWindow.PlacesCommandHook.showPlacesOrganizer,'History'); buttonfunc('aD-addons',mainWindow.BrowserOpenAddonsMgr,null); buttonfunc('aD-sync',mainWindow.openPreferences,'paneSync'); buttonfunc('aD-settings',mainWindow.openPreferences,null); -
Derzeit werden die Buttons nur beim Browserstart und beim Öffnen eines neuen leeren Fensters erstellt.
Ich werde sehen, was ich da tun kann.Mit Scriptish lassen sich die Buttons ebenfalls erstellen; mit Greasemonkey geht's nicht. Da tritt das Problem nicht auf und auch sonst ist einiges einfacher. Allerdings weiß ich nicht, wie ich den Buttons Funktionen zuweisen kann. Ich bräuchte Zugriff nicht nur auf den Seiteninhalt, sondern auch auf die Browserfunktionen und glaube, daß das in Scriptish möglich ist.
Ich habe mir schon entsprechende MDN-Seiten angesehen, blicke da aber nicht durch. -
So, hier ist einmal ein Zwischenergebnis:
Code
Alles anzeigen(function () { if (location != 'chrome://browser/content/browser.xul') return; setTimeout(function () { if (content.location != 'chrome://browser/content/aboutDialog.xul') return; var doc = content.document; var aboutDialogContainer = doc.getElementById('aboutDialogContainer'); launchBox = document.createElement('hbox'); aboutDialogContainer.appendChild(launchBox); launchBox.setAttribute('id','launchBox'); launchBox.innerHTML = '\ <button id="aD-bookmarks" class="aD-launchButton"/>\ <button id="aD-history" class="aD-launchButton"/>\ <button id="aD-addons" class="aD-launchButton"/>\ <button id="aD-sync" class="aD-launchButton"/>\ <button id="aD-settings" class="aD-launchButton"/>\ '; function buttonfunc(id, command, param) { doc.getElementById(id).addEventListener('click', function (event) { if (event.button == 0) command(param); }); }; buttonfunc('aD-bookmarks',PlacesCommandHook.showPlacesOrganizer,'AllBookmarks'); buttonfunc('aD-history',PlacesCommandHook.showPlacesOrganizer,'History'); buttonfunc('aD-addons',BrowserOpenAddonsMgr,null); buttonfunc('aD-sync',openPreferences,'paneSync'); buttonfunc('aD-settings',openPreferences,null); }, 1000); }) (); -
-
Ja, so. :klasse:

-
Zitat von Abendstern2010
In beiden hab ich unten noch Platz würde das gehen wenn man da nicht die Elemente vom Firefox(Addon,Sync usw einbauen könnte?
Ja, mit der Erweiterung userChromeJS.Ausführliche Informationen dazu stehen hier:
https://github.com/ardiman/userCh…aster/README.md
und hier: http://www.camp-firefox.de/forum/viewtopic.php?f=16&t=105645Das folgende Skript ist ein Rohentwurf mit zunächst nur einem Button und noch ohne Grafik und Beschriftung:
Code
Alles anzeigen(function () { if (location != 'chrome://browser/content/browser.xul') return ; setTimeout(function () { if (content.location != 'chrome://browser/content/aboutDialog.xul') return ; var doc = content.document; var aboutDialogContainer = doc.getElementById('aboutDialogContainer'); var launchBox = document.createElement('hbox'); aboutDialogContainer.appendChild(launchBox); var addonsButton = document.createElement('button'); launchBox.appendChild(addonsButton); addonsButton.addEventListener('click', function () BrowserOpenAddonsMgr() ); }, 1000); }) ();
Welche Buttons in welcher Reihenfolge möchtest du haben?Für Größe, Form, Grafik, buntes Anmalen usw. ist dann Andreas zuständig. :wink:
-
Unterforum im Tabtitel, ohne Laufschrift:
Code
Alles anzeigen// ==UserScript== // @name Titel kürzen // @include http://www.camp-firefox.de/* // ==/UserScript== if (document.title.indexOf('Camp Firefox • Thema anzeigen') == 0) { var subforum = document.getElementsByClassName('icon-home')[0].lastChild.firstChild.textContent; document.title = subforum + document.title.substring(29); } else if (document.title.indexOf('Camp Firefox • Forum anzeigen') == 0) document.title = document.title.substring(32) else if (document.title.indexOf('Camp Firefox • ') == 0) document.title = document.title.substring(15);Unterforum im Tabtitel, mit Laufschrift:
Code
Alles anzeigen// ==UserScript== // @name Titel kürzen und Laufschrift // @include http://www.camp-firefox.de/* // ==/UserScript== if (document.title.indexOf('Camp Firefox • Thema anzeigen') == 0) { var subforum = document.getElementsByClassName('icon-home')[0].lastChild.firstChild.textContent; document.title = subforum + document.title.substring(29); } else if (document.title.indexOf('Camp Firefox • Forum anzeigen') == 0) document.title = document.title.substring(32) else if (document.title.indexOf('Camp Firefox • ') == 0) document.title = document.title.substring(15); var scrolltext = (' '+document.title+' •').replace(/ /g,'\u00A0'); scroll(); function scroll() { scrolltext = scrolltext.substring(1) + scrolltext.substring(0,1); document.title = scrolltext; setTimeout(scroll, 100); }; -
chrome://browser/content/aboutDialog.xul
als Startseite eintragen funktioniert jedenfalls in Fx 27. -
-
Hallo, Norma!
Änderungen in der Registry sind eine heikle Sache, da sollte man genau wissen, was man tut oder unbedingt die Registry vorher sichern. CCleaner bietet diese Möglichkeit. Wenn eine Sicherung, auch Backup genannt, vorhanden ist, spiele sie zurück.
-
Hallo,
Drucken funktioniert bei mir, ebenfalls Windows XP und Fx 27.
-
Wie soll der Titel denn aussehen?
Z.B. "Anpassungen - Anzeige in Tabs" oder "Anzeige in Tabs - Anpassungen" oder anders?
Da müsste sich schon etwas machen lassen.
-
-
Falls man auch auf anderen Forumsseiten den Titel kürzen möchte, z.B. auf:
Foren-Übersicht,
Erweiterungen & Themes,
Eigene Beiträge,
Unbeantwortete Themen :Code
Alles anzeigen// ==UserScript== // @name Titel kürzen // @include http://www.camp-firefox.de/* // ==/UserScript== if (document.title.indexOf('Camp Firefox • Thema anzeigen') == 0 || document.title.indexOf('Camp Firefox • Forum anzeigen') == 0) document.title = document.title.substring(32) else if (document.title.indexOf('Camp Firefox • ') == 0) document.title = document.title.substring(15); -
-
Hallo, Martin!
Führe als erstes das Update auf Fx 27.0.1 durch, das ist wegen geschlossener Sicherheitslücken sehr wichtig.
(Details: Security Advisories for Firefox)Dann starte Firefox im Abgesicherten Modus. Wie ist es da?
Rufe about:support auf, klicke auf "Text in die Zwischenablage kopieren" und füge den kopierten Text in Code-Klammern in deinen nächsten Beitrag ein.
So soll es aussehen:Das Thema mit den nicht angezeigten Symbolen hatten wir schon einige Male im Forum.
Es wird sich jemand melden, der mehr darüber weiß.