1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. TEST - camp-firefox.de
  2. aborix

Beiträge von aborix

  • userChrome.js Scripte für den Fuchs (Zusammenstellung)

    • aborix
    • 21. November 2014 um 22:54

    Findbar Plus:

    Testet bitte:

    Code
    // ==UserScript==
    // @charset      UTF-8
    // @note         大阪弁いややったらラベルとか書き換えて~や
    // ==/UserScript==
    
    
    (function() {
    
    
        // 検索バーにヒットした件数を表示する
        var status = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'match-case-status');
        var sep = document.createElement("toolbarspacer");
        var count = document.createElement("label");
        count.hidden = true;
        status.parentNode.insertBefore(sep, status);
        status.parentNode.insertBefore(count, status);
        gFindBar.__proto__._foundMatches = count;
    
        gFindBar.__proto__._updateMatchesCount = function(aRes) {
            if (!this._updateMatchCountTimeout)
                window.clearTimeout(this._updateMatchCountTimeout);
            this._updateMatchCountTimeout =
                    window.setTimeout(function(aRes, aSelf) {
                        aSelf._updateMatchesCountWorker(aRes);
                    }, 0, aRes, this);
        }
        gFindBar.__proto__._updateMatchesCountWorker = function(aRes) {
            var word = this._findField.value;
            if (aRes == this.nsITypeAheadFind.FIND_NOTFOUND || !word) {
                this._foundMatches.hidden = true;
                this._foundMatches.value = "";
            }
            else {
                var matchesCount = this._countMatches(word).toString();
                if (matchesCount != "0") {
                    if (matchesCount == "1")
                        this._foundMatches.value = matchesCount + " Begriffe gefunden";
                    else if (matchesCount == "-1") {
                        var matchLimit = 100;
                        this._foundMatches.value = "extrem viel Treffer";
                        //var key = (matchLimit > 1000) ? "Decrease" : "Increase";
                    } else
                        this._foundMatches.value = matchesCount + " Begriffe gefunden";
                    this._foundMatches.hidden = false;
                }
                else {
                    this._foundMatches.hidden = true;
                    this._foundMatches.value = "";
                }
                window.clearTimeout(this._updateMatchCountTimeout);
            }
        }
        gFindBar.__proto__._countMatches = function(aWord, aWindow) {
            var win = aWindow || this.browser.contentWindow;
            var countFound = 0;
            for (var i = 0, count; win.frames && i < win.frames.length; i++) {
                if ((count = this._countMatches(aWord, win.frames[i])) != -1)
                    countFound += count;
                else
                    return count;
            }
            var doc = win.document;
            if (!doc || !(doc instanceof HTMLDocument))
                return countFound;
            var body = doc.body;
            var count = body.childNodes.length;
            var searchRange = doc.createRange();
            var startPt = doc.createRange();
            var endPt = doc.createRange();
            searchRange.setStart(body, 0);
            searchRange.setEnd(body, count);
            startPt.setStart(body, 0);
            startPt.setEnd(body, 0);
            endPt.setStart(body, count);
            endPt.setEnd(body, count);
            var retRange = null;
            var finder = Components.classes["@mozilla.org/embedcomp/rangefind;1"]
                    .createInstance()
                    .QueryInterface(Components.interfaces.nsIFind);
            finder.caseSensitive = this._shouldBeCaseSensitive(aWord);
            var matchLimit = 100;
            while ((retRange = finder.Find(aWord, searchRange, startPt, endPt))) {
                if (this._rangeIsVisible(retRange, win)) {
                    if (this._findMode == this.FIND_LINKS) {
                        if (this._rangeStartsInLink(retRange))
                            ++ countFound;
                    }
                    else
                        ++ countFound;
                }
                if (countFound == matchLimit) {
                    countFound = -1;
                    break;
                }
                startPt = doc.createRange();
                startPt.setStart(retRange.startContainer, retRange.startOffset + 1);
            }
            return countFound;
        }
        gFindBar.__proto__._rangeIsVisible = function(aRange, aWindow) {
            var node = aRange.startContainer;
            if (node.nodeType == node.ELEMENT_NODE) {
                if (node.hasChildNodes) {
                    var childNode = node.childNodes[aRange.startOffset];
                    if (childNode)
                        node = childNode;
                }
            }
            while (node && node.nodeType != node.ELEMENT_NODE)
                node = node.parentNode;
            if (node) {
                var style = aWindow.getComputedStyle(node, "");
                if (style) {
                    if (style.visibility == "hidden" ||
                            style.visibility == "collapse" ||
                            style.display == "none")
                        return false;
                    if (style.left != "auto" && style.width != "auto")
                        if (style.left < 0 && style.left + style.width < 0)
                            return false;
                    if (style.top != "auto" && style.height != "auto")
                        if (style.top < 0 && style.top + style.height < 0)
                            return false;
                }
            }
            return true;
        }
        gFindBar.__proto__._rangeStartsInLink = function(aRange) {
            var isInsideLink = false;
            var node = aRange.startContainer;
            if (node.nodeType == node.ELEMENT_NODE) {
                if (node.hasChildNodes) {
                    var childNode = node.childNodes[aRange.startOffset];
                    if (childNode)
                        node = childNode;
                }
            }
            const XLink_NS = "http://www.w3.org/1999/xlink";
            do {
                if (node instanceof HTMLAnchorElement) {
                    isInsideLink = node.hasAttribute("href");
                    break;
                }
                else if (typeof node.hasAttributeNS == "function" &&
                        node.hasAttributeNS(XLink_NS, "href")) {
                    isInsideLink = (node.getAttributeNS(XLink_NS, "type") == "simple");
                    break;
                }
                node = node.parentNode;
            } while (node);
            return isInsideLink;
        }
        eval("gFindBar._updateCaseSensitivity=" + gFindBar._updateCaseSensitivity.toString().slice(0, -1) + "this._updateMatchesCount();}");
        eval("gFindBar._updateStatusUI=" + gFindBar._updateStatusUI.toString().slice(0, -1) + "this._updateMatchesCount();}");
    
    
    
    
       // 検索バーをCtrl + Fでトグルする
       eval('gFindBar.open = ' + gFindBar.open.toString().replace('{','{if(!this.hidden){gFindBar.close();return;}'));
    
    
    
    
       // 検索バーからフォーカスを外し画面クリックで検索バーを閉じる
       function closeFindbar(e){
          if (!gFindBar.hidden)
          {
    //         if(e.target.id != "FindToolbar"){
    
    
    //         console.log('* '+e.target+' '+e.target.nodeName);
    //         console.log('* '+e.originalTarget+' '+e.originalTarget.nodeName);
             if (e.target.nodeName != 'tabbrowser') {
    
                gFindBar.close();
             }
          }
       }
    
       addEventListener('mousedown', closeFindbar, false);
       addEventListener('keydown', closeFindbar, false);
    
    
    
    
       // 検索バーの上をマウスホイールで↑↓検索
       gFindBar.addEventListener('DOMMouseScroll', function (event){
          gFindBar.onFindAgainCommand(event.detail < 0);
          }, false);
    
    
    
    
    	
    
    	function ClearFindbarButton() {	
    
    
    
    /*
    //		var elem = gBrowser.getBrowserForTab(event.target).parentNode;
    
    
    		var elem = gFindBar;
    
    		console.log('* '+elem.nodeName);
    
    		var refNode = document.getAnonymousElementByAttribute(elem, 'anonid', 'find-next');
    
    		console.log('* '+refNode);
    */		
    		var ClearFindbarBtn = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'clearFindbar-button');
    		if (ClearFindbarBtn) 
    			return;
    		var refNode = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'find-next');
    		if (!refNode) 
    			return;
    		ClearFindbarBtn = document.createElement("toolbarbutton");
    		ClearFindbarBtn.setAttribute("anonid", "clearFindbar-button");
    		ClearFindbarBtn.setAttribute("type", "button");
    		ClearFindbarBtn.setAttribute("class", "toolbarbutton-1");
    		ClearFindbarBtn.setAttribute("oncommand", "clearFindbarTweak.onCommand(event);");
    		ClearFindbarBtn.setAttribute("label", " Löschen ");
    		ClearFindbarBtn.setAttribute("tooltiptext", "Inhalt der Suchleiste löschen");
    		ClearFindbarBtn.style.listStyleImage = "url('')";         
    		refNode.parentNode.insertBefore(ClearFindbarBtn, refNode);		
    
    		clearFindbarTweak = {
    			onCommand: function(event) {
    				var findBar = gFindBar;               
    				var findField = findBar.getElement('findbar-textbox');               
    //				var highlightBtn = findBar.getElement("highlight");               
    //				var historyfindBar = document.getElementById('historyfindbar');
    //				var historyfindField = document.getElementById('find-field2');
    				if (!findBar.hidden) {
    					findField.focus();
    					findField.select();
    					findField.value = "";
    				};
    			}
    		};	
    
    
    
    
    	};	
    
    
    	ClearFindbarButton();		
    
    	gBrowser.tabContainer.addEventListener('TabSelect', ClearFindbarButton);
    
    
    
    
    
    
    })();
    
    
    /*
       // 検索バーに消去ボタンを付けたったで
       (function ClearFindbarButton() {
          var refNode = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'find-next');
          if (!refNode) return;
             const locale = (Components.classes["@mozilla.org/preferences-service;1"]
             .getService(Components.interfaces.nsIPrefBranch).getCharPref("general.useragent.locale")).indexOf("zh")==-1;
             var ClearFindbarBtn = document.createElement("toolbarbutton");
             ClearFindbarBtn.setAttribute("id", "clearFindbar-button");
             ClearFindbarBtn.setAttribute("type", "button");
             ClearFindbarBtn.setAttribute("class", "toolbarbutton-1");
             ClearFindbarBtn.setAttribute("oncommand", "clearFindbarTweak.onCommand(event);");
             ClearFindbarBtn.setAttribute("label", " Löschen ");
             ClearFindbarBtn.setAttribute("tooltiptext", "Inhalt der Suchleiste löschen");
             ClearFindbarBtn.style.listStyleImage = "url('')";         
             refNode.parentNode.insertBefore(ClearFindbarBtn, refNode);
             clearFindbarTweak = {
                onCommand: function(event) {
    //               var findBar = document.getElementById('FindToolbar');
    //               var findField = document.getElementById('FindToolbar').getElement('findbar-textbox');
    
                   var findBar = gFindBar;               
                   var findField = findBar.getElement('findbar-textbox');
    
                   var highlightBtn = findBar.getElement("highlight");               
                   var historyfindBar = document.getElementById('historyfindbar');
                   var historyfindField = document.getElementById('find-field2');
                   if (findBar.hidden == false) {
                      findField.focus();
                      findField.select();
                      findField.value = "";
                   }
    
                   if (historyfindBar.hidden == false && historyfindField != null) {
                      historyfindField.focus();
                      historyfindField.select();
                      historyfindField.value = "";
                   }
    
    
                   else return;
                }
             }
    })();
    */
    Alles anzeigen
  • userChrome.js Scripte für den Fuchs (Zusammenstellung)

    • aborix
    • 21. November 2014 um 21:10

    Öffne eine Seite in einem neuen Tab und öffne dort die Findbar.

  • userChrome.js Scripte für den Fuchs (Zusammenstellung)

    • aborix
    • 21. November 2014 um 20:25

    Dass der Löschbutton fehlt, kann ich insofern bestätigen, als er bei mir nur im ersten Tab vorhanden ist.
    Die Leiste klappt ein, wenn man in einen Bereich außerhalb der Leiste klickt. Das ist genauso beim Originalskript, ich habe es in Fx 24esr getestet. Das lässt sich aber ändern.

  • Was mischt du dich eigentlich ein?

    • aborix
    • 21. November 2014 um 17:00

    Jo.
    Wünschen kann man sich ja was, zumal bald Weihnachten ist.

    Und noch ein Wunsch.
    Folgendes soll zur Selbstverständlichkeit werden:

    Zitat von Mithrandir

    Ich melde mich halt nur, wenn ich etwas zu sagen habe [...]

    (Quelle: http://www.camp-firefox.de/forum/viewtopi…=945508#p945508)

    Ausnahmen darf es natürlich geben.

    Der Rest hat durchaus Platz im Forum: im Smalltalk.

  • userChrome.js Scripte für den Fuchs (Zusammenstellung)

    • aborix
    • 21. November 2014 um 16:03

    Testet mal bitte:

    Code
    // ==UserScript==
    // @charset		UTF-8
    // @note			大阪弁いややったらラベルとか書き換えて~や
    // ==/UserScript==
    
    
    (function() {
    
    
        // 検索バーにヒットした件数を表示する
        var status = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'match-case-status');
        var sep = document.createElement("toolbarspacer");
        var count = document.createElement("label");
        count.hidden = true;
        status.parentNode.insertBefore(sep, status);
        status.parentNode.insertBefore(count, status);
        gFindBar.__proto__._foundMatches = count;
    
        gFindBar.__proto__._updateMatchesCount = function(aRes) {
            if (!this._updateMatchCountTimeout)
                window.clearTimeout(this._updateMatchCountTimeout);
            this._updateMatchCountTimeout =
                    window.setTimeout(function(aRes, aSelf) {
                        aSelf._updateMatchesCountWorker(aRes);
                    }, 0, aRes, this);
        }
        gFindBar.__proto__._updateMatchesCountWorker = function(aRes) {
            var word = this._findField.value;
            if (aRes == this.nsITypeAheadFind.FIND_NOTFOUND || !word) {
                this._foundMatches.hidden = true;
                this._foundMatches.value = "";
            }
            else {
                var matchesCount = this._countMatches(word).toString();
                if (matchesCount != "0") {
                    if (matchesCount == "1")
                        this._foundMatches.value = matchesCount + " Begriffe gefunden";
                    else if (matchesCount == "-1") {
                        var matchLimit = 100;
                        this._foundMatches.value = "extrem viel Treffer";
                        //var key = (matchLimit > 1000) ? "Decrease" : "Increase";
                    } else
                        this._foundMatches.value = matchesCount + " Begriffe gefunden";
                    this._foundMatches.hidden = false;
                }
                else {
                    this._foundMatches.hidden = true;
                    this._foundMatches.value = "";
                }
                window.clearTimeout(this._updateMatchCountTimeout);
            }
        }
        gFindBar.__proto__._countMatches = function(aWord, aWindow) {
            var win = aWindow || this.browser.contentWindow;
            var countFound = 0;
            for (var i = 0, count; win.frames && i < win.frames.length; i++) {
                if ((count = this._countMatches(aWord, win.frames[i])) != -1)
                    countFound += count;
                else
                    return count;
            }
            var doc = win.document;
            if (!doc || !(doc instanceof HTMLDocument))
                return countFound;
            var body = doc.body;
            var count = body.childNodes.length;
            var searchRange = doc.createRange();
            var startPt = doc.createRange();
            var endPt = doc.createRange();
            searchRange.setStart(body, 0);
            searchRange.setEnd(body, count);
            startPt.setStart(body, 0);
            startPt.setEnd(body, 0);
            endPt.setStart(body, count);
            endPt.setEnd(body, count);
            var retRange = null;
            var finder = Components.classes["@mozilla.org/embedcomp/rangefind;1"]
                    .createInstance()
                    .QueryInterface(Components.interfaces.nsIFind);
            finder.caseSensitive = this._shouldBeCaseSensitive(aWord);
            var matchLimit = 100;
            while ((retRange = finder.Find(aWord, searchRange, startPt, endPt))) {
                if (this._rangeIsVisible(retRange, win)) {
                    if (this._findMode == this.FIND_LINKS) {
                        if (this._rangeStartsInLink(retRange))
                            ++ countFound;
                    }
                    else
                        ++ countFound;
                }
                if (countFound == matchLimit) {
                    countFound = -1;
                    break;
                }
                startPt = doc.createRange();
                startPt.setStart(retRange.startContainer, retRange.startOffset + 1);
            }
            return countFound;
        }
        gFindBar.__proto__._rangeIsVisible = function(aRange, aWindow) {
            var node = aRange.startContainer;
            if (node.nodeType == node.ELEMENT_NODE) {
                if (node.hasChildNodes) {
                    var childNode = node.childNodes[aRange.startOffset];
                    if (childNode)
                        node = childNode;
                }
            }
            while (node && node.nodeType != node.ELEMENT_NODE)
                node = node.parentNode;
            if (node) {
                var style = aWindow.getComputedStyle(node, "");
                if (style) {
                    if (style.visibility == "hidden" ||
                            style.visibility == "collapse" ||
                            style.display == "none")
                        return false;
                    if (style.left != "auto" && style.width != "auto")
                        if (style.left < 0 && style.left + style.width < 0)
                            return false;
                    if (style.top != "auto" && style.height != "auto")
                        if (style.top < 0 && style.top + style.height < 0)
                            return false;
                }
            }
            return true;
        }
        gFindBar.__proto__._rangeStartsInLink = function(aRange) {
            var isInsideLink = false;
            var node = aRange.startContainer;
            if (node.nodeType == node.ELEMENT_NODE) {
                if (node.hasChildNodes) {
                    var childNode = node.childNodes[aRange.startOffset];
                    if (childNode)
                        node = childNode;
                }
            }
            const XLink_NS = "http://www.w3.org/1999/xlink";
            do {
                if (node instanceof HTMLAnchorElement) {
                    isInsideLink = node.hasAttribute("href");
                    break;
                }
                else if (typeof node.hasAttributeNS == "function" &&
                        node.hasAttributeNS(XLink_NS, "href")) {
                    isInsideLink = (node.getAttributeNS(XLink_NS, "type") == "simple");
                    break;
                }
                node = node.parentNode;
            } while (node);
            return isInsideLink;
        }
        eval("gFindBar._updateCaseSensitivity=" + gFindBar._updateCaseSensitivity.toString().slice(0, -1) + "this._updateMatchesCount();}");
        eval("gFindBar._updateStatusUI=" + gFindBar._updateStatusUI.toString().slice(0, -1) + "this._updateMatchesCount();}");
    
    
    
    
    	// 検索バーをCtrl + Fでトグルする
    	eval('gFindBar.open = ' + gFindBar.open.toString().replace('{','{if(!this.hidden){gFindBar.close();return;}'));
    
    
    
    
    	// 検索バーからフォーカスを外し画面クリックで検索バーを閉じる
    	function closeFindbar(e){
    		if(!gFindBar.hidden)
    		{
    //			if(e.target.id != "FindToolbar"){
    
    
    //			console.log('* '+e.target+' '+e.target.nodeName);
    //			console.log('* '+e.originalTarget+' '+e.originalTarget.nodeName);
    			if (e.target.nodeName != 'tabbrowser') {
    
    				gFindBar.close();
    			}
    		}
    	}
    
    	addEventListener('mousedown', closeFindbar, false);
    	addEventListener('keydown', closeFindbar, false);
    
    
    
    
    	// 検索バーの上をマウスホイールで↑↓検索
    	gFindBar.addEventListener('DOMMouseScroll', function (event){
    		gFindBar.onFindAgainCommand(event.detail < 0);
    		}, false);
    
    
    })();
    
    
    
    
    	// 検索バーに消去ボタンを付けたったで
    	(function ClearFindbarButton() {
    		var refNode = document.getAnonymousElementByAttribute(gFindBar, 'anonid', 'find-next');
    		if (!refNode) return;
    			const locale = (Components.classes["@mozilla.org/preferences-service;1"]
    			.getService(Components.interfaces.nsIPrefBranch).getCharPref("general.useragent.locale")).indexOf("zh")==-1;
    			var ClearFindbarBtn = document.createElement("toolbarbutton");
    			ClearFindbarBtn.setAttribute("id", "clearFindbar-button");
    			ClearFindbarBtn.setAttribute("type", "button");
    			ClearFindbarBtn.setAttribute("class", "toolbarbutton-1");
    			ClearFindbarBtn.setAttribute("oncommand", "clearFindbarTweak.onCommand(event);");
    			ClearFindbarBtn.setAttribute("label", " Löschen ");
    			ClearFindbarBtn.setAttribute("tooltiptext", "Inhalt der Suchleiste löschen");
    			ClearFindbarBtn.style.listStyleImage = "url('')";			
    			refNode.parentNode.insertBefore(ClearFindbarBtn, refNode);
    			clearFindbarTweak = {
    				onCommand: function(event) {
    //					var findBar = document.getElementById('FindToolbar');
    //					var findField = document.getElementById('FindToolbar').getElement('findbar-textbox');
    
    					var findBar = gFindBar;					
    					var findField = findBar.getElement('findbar-textbox');
    
    					var highlightBtn = findBar.getElement("highlight");					
    					var historyfindBar = document.getElementById('historyfindbar');
    					var historyfindField = document.getElementById('find-field2');
    					if (findBar.hidden == false) {
    						findField.focus();
    						findField.select();
    						findField.value = "";
    					}
    /*					
    					if (historyfindBar.hidden == false && historyfindField != null) {
    						historyfindField.focus();
    						historyfindField.select();
    						historyfindField.value = "";
    					}
    */
    					else return;
    				}
    			}
    })();
    Alles anzeigen
  • Keine gespeicherten sondern neuen Tab öffnen

    • aborix
    • 21. November 2014 um 11:57

    Ist getan.

    Download:
    http://www.xup.to/dl,18563805/Ad…up@abx_0.1.xpi/

  • Bei jedem Start Kompatibilitätsprüfung und Firefox Rundgang

    • aborix
    • 20. November 2014 um 12:57

    Hallo!

    Verwendest du mehrere Firefox-Versionen mit dem gleichen Profil?

    Setze in about:config extensions.showMismatchUI auf false.
    Wenn der Eintrag nicht existiert, lege ihn an.

  • Keine gespeicherten sondern neuen Tab öffnen

    • aborix
    • 18. November 2014 um 21:01

    Da es ein sehr kurzes Skript ist, kann ich wahrscheinlich eine eigene Erweiterung daraus machen.
    Soll der leere Tab about:newtab oder about:blank enthalten?

  • Keine gespeicherten sondern neuen Tab öffnen

    • aborix
    • 18. November 2014 um 20:48

    Hallo,

    meinst du so wie hier: http://www.camp-firefox.de/forum/viewtopic.php?f=16&t=109865 ?

  • Hinweis auf Programm-Update

    • aborix
    • 17. November 2014 um 12:06

    Hallo!

    Man kann jedenfalls die Dauer der Anzeige verändern.
    Das geschieht mit einem Code in der Datei userChrome.css oder der Erweiterung Stylish.

    zur userChrome.css:
    Erstelle in deinem Profilordner einen Ordner chrome, sofern er nicht vorhanden ist.
    In diesem erstelle eine Textdatei namens userChrome.css, in die du den Code einträgst.
    Dann starte Firefox neu.

    zu Stylish:
    Hilfe zu Stylish

    Code
    /* AGENT_SHEET */
    
    
    @-moz-document url(chrome://global/content/alerts/alert.xul) {
      #alertBox {animation-duration: 3600s !important}
    }


    Die Zahl gibt die Dauer in Sekunden an, im obigen Code also eine Stunde.
    Der Text des Info-Fensters ist dann nicht sofort sichtbar, sondern wird langsam eingeblendet.
    Das lässt sich ändern, ich habe mich allerdings damit noch nicht beschäftigt.
    Relevante Informationen dazu:
    http://mxr.mozilla.org/mozilla-releas…ntent/alert.css
    https://developer.mozilla.org/en-US/docs/Web/CSS/animation ff.

  • Hilfskommentar im Javascript Scratchpad entfernen

    • aborix
    • 12. November 2014 um 22:58

    Gibt es dazu JS-Meldungen in der Browserkonsole?
    Ist der Text des Dialog-Fensters Zeichen für Zeichen genau gleich mit dem in textA oder textB im Skript?

  • Hilfskommentar im Javascript Scratchpad entfernen

    • aborix
    • 12. November 2014 um 09:48

    und jetzt:

    Code
    (function() {
    	if (location != 'chrome://global/content/commonDialog.xul')
    		return;
    	const textA = 'Sollen die an dieser JavaScript-Umgebung vorgenommen \u00C4nderungen gespeichert werden?';
    	const textB = 'Do you want to save the changes you made to this scratchpad?';
    	setTimeout(function() {
    		var description = document.getElementById('info.body');
    		if (description.textContent == textA || description.textContent == textB) {
    			var dialog = document.getElementById('commonDialog');
    			var buttonbox = document.getAnonymousElementByAttribute(dialog, 'anonid', 'buttons');
    			var button = buttonbox.getElementsByAttribute('accesskey', 'N')[0]
    							|| buttonbox.getElementsByAttribute('accesskey', 'n')[0];
    			button.click();
    		};
    	}, 0);
    })();
    Alles anzeigen
  • Hilfskommentar im Javascript Scratchpad entfernen

    • aborix
    • 12. November 2014 um 07:50

    Gern geschehen. :D

    Die Frage nach dem Speichern beim Schließen des Scratchpads ist für mich ebenfalls überflüssig und das Wegklicken erledigt automatisch dieses Skript:

    Code
    (function() {
    	if (location != 'chrome://global/content/commonDialog.xul')
    		return;
    	const textA = 'Sollen die an dieser JavaScript-Umgebung vorgenommen \u00C4nderungen gespeichert werden?';
    	const textB = 'Do you want to save the changes you made to this scratchpad?';
    	var description = document.getElementById('info.body');
    	if (description.textContent == textA || description.textContent == textB) {
    		var dialog = document.getElementById('commonDialog');
    		var buttonbox = document.getAnonymousElementByAttribute(dialog, 'anonid', 'buttons');
    		var button = buttonbox.getElementsByAttribute('accesskey', 'N')[0]
    						 || buttonbox.getElementsByAttribute('accesskey', 'n')[0];
    		button.click();
    	};
    })();
    Alles anzeigen
  • Hilfskommentar im Javascript Scratchpad entfernen

    • aborix
    • 11. November 2014 um 23:00

    Wie ist es damit:

    Code
    (function() {
       if (location != 'chrome://browser/content/devtools/scratchpad.xul')
          return;
       var i = 0;
       apply();
       function apply() {
          if (i >= 100)
             return;
          i++;
    		var iframe = document.getElementsByTagName('iframe')[0];
    		if (iframe
    			 && iframe.contentDocument.body
    			 && iframe.contentDocument.body.getElementsByClassName('CodeMirror-code')[0]
    			 && iframe.contentDocument.body.getElementsByClassName('CodeMirror-code')[0].firstChild)
    		{
    			setTimeout(function() {
    				document.getElementById('cMenu_selectAll').click();
    				document.getElementById('cMenu_delete').click();
    			}, 0);
    		} else {
    			setTimeout(apply, 0);
    		};
    	};
    })();
    Alles anzeigen
  • Scripte unter E10 funktionieren nicht

    • aborix
    • 10. November 2014 um 07:42

    Schauen wir mal.
    Ich habe es bisher nur wenig getestet.
    Testet es gründlich und meldet Fehler:

    Code
    //	aboutDialog 3
    
    
    (function() {
    
    
       if (location != 'chrome://browser/content/browser.xul')
    		return;		
    
    	function frameScript() {
    
    
    		var chromeWindow = content.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    			.getInterface(Components.interfaces.nsIWebNavigation)
    			.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
    			.rootTreeItem
    			.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    			.getInterface(Components.interfaces.nsIDOMWindow);
    
    
    		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', 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);
    
    
    		});
    
    
    	};	
    
    
    	var frameScriptURI = 'data:,(' + frameScript.toString() + ')();';
    
    
    	window.messageManager.loadFrameScript(frameScriptURI, true);	
    
    })();
    Alles anzeigen
  • tabs werden manchmal in neuem firefox geöffnet

    • aborix
    • 8. November 2014 um 20:47

    Gern geschehen. :)

  • tabs werden manchmal in neuem firefox geöffnet

    • aborix
    • 8. November 2014 um 02:41

    Das lässt sich mit Disable detach and tear off tab machen.

  • Hilfskommentar im Javascript Scratchpad entfernen

    • aborix
    • 4. November 2014 um 08:37

    Mir ist das schon lange lästig und ich verwende folgendes userChromeJS-Skript.
    Der Kommentar blitzt beim Öffnen manchmal kurz auf.

    Code
    (function() {
    	if (location != 'chrome://browser/content/devtools/scratchpad.xul')
    		return;
    	var i = 0;
    	apply();
       function apply() {
    		if (i >= 100)
    			return;
    		i++;
    		var b = document.getElementsByTagName('iframe')[0].contentDocument.body;
    		if (b) {
    			var c = b.getElementsByClassName('CodeMirror-code')[0];
    			if (c && c.firstChild) {
    				setTimeout(function() {
    					document.getElementById('cMenu_selectAll').click();
    					document.getElementById('cMenu_delete').click();
    				}, 0);
    			}
    			else
    				setTimeout(apply, 0);
    		}
    		else
    			setTimeout(apply, 0);
       };
    })();
    Alles anzeigen
  • Der Glückwunsch-Thread

    • aborix
    • 3. November 2014 um 16:29

    Hallo, yekatarina!

    [Blockierte Grafik: http://www11.pic-upload.de/03.11.14/odhcgu4hhljs.jpg]

  • Chronik löschen

    • aborix
    • 1. November 2014 um 14:11

    Wenn du beim Chronik-Löschen auch die Website-Einstellungen löschst, liegt es vielleicht daran.

Unterstütze uns!

Jährlich (2025)

0 %

0% (0,00 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon