Habe auch gar keine Zeit dafür, mich damit ernsthaft zu beschäftigen.
Allerdings wirklich schade, weil zB. das neue Script contextMenuImageRotate.uc.js echt cool ist.
Beiträge von loshombre
-
-
IMO müsste man schon ein Javascript Spezi sein, um seine chrome.js zu verstehen.
Denn diese ist quasi der Loader. Allerdings so wild verbaut, weil sich innerhalb dieser Datei quasi noch 2 andere Scripte befinden. Für die Scripte im Menü aufzulisten und die chrome.js neu zu laden.
Und alles irgend wie miteinander verschmolzen.
Eins seiner früherer Loader war nur ein Bruchteil der Scriptzeilen (inkl. Kommentare). Der tut hier aber bei den neuen Scripten gar nicht mehr.Code
Alles anzeigen/* :::::::: Sub-Script/Overlay Loader v3.0 ::::::::::::::: */ // automatically includes all files ending in .uc.xul and .uc.js from the profile's chrome folder // New Features: // supports Greasemonkey-style metadata for userChrome scripts and overlays // supports a "main" shortcut for the main browser window in include/exclude lines // supports regexes in the include/exclude lines // scripts without metadata will run only on the main browser window, for backwards compatibility //if (location.href != "chrome://browser/content/browser.xul") throw "stop"; var userChrome = {js: {}}; (function() { // URL of the main browser window; var mainWindowURL = "chrome://browser/content/browser.xul"; var chromeDir = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("UChrm", Components.interfaces.nsILocalFile); var files = chromeDir.directoryEntries.QueryInterface(Components.interfaces.nsISimpleEnumerator); var filepathhandler = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService).getProtocolHandler("file") .QueryInterface(Components.interfaces.nsIFileProtocolHandler); var istream = Components.classes["@mozilla.org/network/file-input-stream;1"] .createInstance(Components.interfaces.nsIFileInputStream); userChrome.js.scripts = []; userChrome.js.overlays = []; (function loadFiles() { if(!files.hasMoreElements()) return; var file = files.getNext().QueryInterface(Components.interfaces.nsIFile); if(/\.uc\.(js|xul)$|^userChrome\.xul$/i.test(file.leafName)) { // This code is adapted/simplified from Greasemonkey's scriptdownloader.js and convert2RegExp.js var script = { filename: file.leafName, name: file.leafName, namespace: "", description: "", includes: [], excludes: [] }; // read the file line by line var line = {}, foundMeta = false, match = null; istream.init(file, 0x01, 0444, 0); istream.QueryInterface(Components.interfaces.nsILineInputStream); while(istream.readLine(line)) { if(!foundMeta && line.value.indexOf("// ==UserScript==") == 0) { foundMeta = true; } else if(foundMeta && (match = line.value.match(/\/\/ \@(\S+)\s+([^\n]+)/))) switch(match[1]) { case "name" : case "namespace" : case "description" : script[match[1]] = match[2]; break; case "include" : case "exclude" : script[match[1] + "s"].push(match[2] == "main" ? mainWindowURL : match[2]); break; } else if(foundMeta && line.value.indexOf("// ==/UserScript==") == 0) { break; } } istream.close(); // make scripts without metadata run in the main window if(!script.includes.length) script.includes.push(mainWindowURL); // decide whether to run the script var i, run = false, list; for(i = 0, list = script.includes; i < list.length; i++) if(checkURL(list[i])) { run = true; break; } for(i = 0, list = script.excludes; i < list.length; i++) if(checkURL(list[i])) { run = false; break; } if(run) { if(/\.js$/.test(script.filename)) { Components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getService(Components.interfaces.mozIJSSubScriptLoader) .loadSubScript(filepathhandler.getURLSpecFromFile(file)); userChrome.js.scripts.push(script); } else { document.loadOverlay(filepathhandler.getURLSpecFromFile(file), null); userChrome.js.overlays.push(script); } } } setTimeout(loadFiles, 0); })(); // check url for match function checkURL(url) { return url == "*" || url[0] == "/" && eval(url.replace(/^\/\*/, "\/\/")).test(location.href) || convert2RegExp(url).test(location.href); } // Converts a pattern in this programs simple notation to a regular expression. // thanks AdBlock! http://www.mozdev.org/source/browse/adblock/adblock/ function convert2RegExp( pattern ) { var s = new String(pattern); var res = new String("^"); for (var i = 0 ; i < s.length ; i++) { switch(s[i]) { case '*' : res += ".*"; break; case '.' : case '?' : case '^' : case '$' : case '+' : case '{' : case '[' : case '|' : case '(' : case ')' : case ']' : res += "\\" + s[i]; break; case '\\' : res += "\\\\"; break; case ' ' : // Remove spaces from URLs. break; default : res += s[i]; break; } } // fortunately, we don't need .tld in chrome :) return new RegExp(res + '$', "i"); } })();
-
Würd ich ehrlich gesagt von abraten.
Dann gäbe es nämlich 2 userChrome.js und noch mehr Durcheinander als jetzt schon teilweise gibt.Was anderes wäre es, wenn man die Alice Datei bis auf das Nötigste runter schrauben könnte, um dann nur mit dieser laden zu können. Bei seiner js blick ich aber überhaupt nicht durch :roll: und habe auch überhaupt keine Zeit, mit damit zu beschäftigen.
Kamerad Mithrandir wird das wohl ähnlich sehen, um Mal in seinem Namen vorgreifen zu dürfen. -
Zitat
Eben getestet, geht nur mit seiner Monster userchrome.js.
Schade :? Hätt ich gerne in unsere Sammlung mit aufgenommen.
ZitatIm übrigen ihr werdet auch in Asien beobachtet
Ist mir bekannt. Und nicht nur dort. Auf mehreren japanischen Seiten /Foren und auch bei den Chinesen (auch schon länger).
-
Mit CrossFireModoki.uc.js von Griever kann ich hier irgend wie nichts anfangen und das neue Script von Alice will hier nicht laufen. Bekomme beim Test kein Kontextmenü.
-
Und wenn wir den Elfer nicht verschossen hätten, wäre es 4:2 gewesen. Aber egal. 3 Punkte, Platz 2.
Nö Hombre, das müssen wir nicht, weil BVB den Meistertitel, im Gegensatz zu den Bayern erst gar nicht holen muss. Kann gerne, aber eben nicht muss. Und genau hier besteht u.a. der große Unterschied.
Im Pokal mischen wir noch mit, ein toller Vizemeister in der Liga (wenn es so weiter geht) mit ner Direktquali für die CL, in der wir diese Saison auch noch dabei sind.
Also besser kann es momentan wirklich nicht laufen. -
Hab ich schon Mal erwähnt, dass ich ein großer BVB Fan bin ? :mrgreen:
Apropos Fußball. Wo sind denn hier eigentlich die S0 hastdunichtgesehen Sportkameraden :lol:
-
Technische Updates, bzw. Modifikationen der Scripte:
FindbarClearButton.uc.js
Inspector_de_Info.uc.js
UndoCloseTabButton.uc.js321. Context Link Text // Dieses Script bringt ein kleines Menü "Linktext" in den Hauptkontext, mit dem man den Text eines Links, der nicht extra markiert werden muss, kopieren, über Google suchen und als neue Url (wird anhand des/der Wörter neu kreiert) öffnen kann.
322. Undo Close Tab Menu // Eine schlanke Alternative zum Script Nr.182. Undo List In Tabmenu Too mit dem man nur im Tabkontext eine Liste der kürzlich geschlossenen Tabs für deren Wiederherstellung bekommt.
-
Mach doch irgend einen Hintergrund darein und gut is.
background: #F9F8F7
-
In diesem Fall schon. Geht aber mit Sicherheit auch anders. Hab da aber deswegen nicht weiter rum gefummelt, weil es mich einfach nicht stört.
-
Ich hab hier diesen Code am Start:
CSS
Alles anzeigen@-moz-document url(chrome://browser/content/browser.xul) { #vertical-toolbar { width: 30px !important; background: #F9F8F7 url("data:image/gif;base64,R0lGODlhHgABAPcAAJmXtZyat52cuJ%2BduaKgu6WjvaimwKuqwrCvxbSzybq5zb28z8PC1MfH183N3NLS4NbW4trb5t%2Ff6uLi7OXl7ujp8evs9O3t9e7v9vDx9%2FHy%2BfP0%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAeAAEABwgjADcI1JABwwULFShMkBABwgMHDRgsUJAAwQEDBQgMEBAAQEAAOw%3D%3D") repeat-y !important; border: none !important;} #vertical-toolbar:not(:hover) { margin-left: -29.5px !important; -moz-transition: margin-left 0.5s 200ms !important;} #vertical-toolbar:hover { margin-left: 0px!important; -moz-transition: margin-left 0.5s 200ms !important;} }
-
Bis vor kurzem schon seltsam, warum es bei mir zB. problemlos auch ohne diesen Hack klappt.
Jetzt kann ich es mir aber vielleicht erklären. Bei meinen Anwendungen hab ich extra stehen: "JScript Datei" und "XUL Datei" und beide hab ich auf "Datei speichern" stehen. Scheint aber, zumindest hier beim Download Latte zu sein, weil auch bei "Jedes Mal nachfragen" klappt es einwandfrei.In einem frischen Profil gibt es diese Einträge logischerweise nicht und somit (denk ich) wird aus dem Script Download eine Textdatei.
Hombre Endor hat schon ein Script diesbezüglich getestet und vorgeschlagen, mit dem es auch fehlerfrei funktioniert.
Man könnte u.a. auch dafür das Script SaveSelection.uc.js benutzen. Funktioniert hier beim Test damit auch einwandfrei, wenn man des ausgewählten Text damit kopiert. -
Hombre, wie bist du denn dadrauf gekommen ?
-
317. WebScreenShot Button
318. Tab Open in Sidebar Menu Plus
319. Copy Feed URLBeschreibung siehe oben / Auflistung am Threadanfang / auf Github.
320. Auto Popupable Patch // Dieses Script funktioniert nur in Verbindung mit dem Script Nr.29. Auto Popup und öffnet automatisch das Stylemenü Popup am Stylish Button.
-
Hombre, da haben wir damals schon versucht, den Fuchs JS -und CSS- mäßig mächtig zu verbiegen, was uns auch das eine, oder andere Mal auch gut gelang
Da waren ja auch noch paar richtige Kameraden dabei, die es aktuell leider nicht mehr gibt -
Jo Hombre, dat waren noch Zeiten
(Guck mal aufs Thread Datum).
-
Dann kann ich euch leider nicht helfen, denn egal wie ich so n Moped von Github ansauge, kommt es immer korrekt auf die schwarze Kugel an.
ZitatDas meinst du doch wohl nicht im Ernst?
Und wie ich das ernst meine.
ZitatDann frage ich dich, wozu dieses ganze Schrauberforum.
Da ich dieses Forum nicht auf die Beine gestellt habe, kann ich es dir auch nicht beantworten.
ZitatNimm hin wie Firefox ist und basta!
Jo, mach ich.
-
Hier für Ungläubige unter XP:
[Blockierte Grafik: http://i.imagebanana.com/img/81y36zw2/Zwischenablage02.jpg]
Und genau so wird das Script auf die Platte abgelegt! Egal, ob über Kontext, oder per Hotkeys.
-
Zitat von milupo
Bei js-Skripten wird dafür beim Abspeichern die Endung .txt drangehängt.
Quatsch!
Zitat von milupoWarum ist denn in der UserChrome.js eigentlich nicht userChrome.import("*", "UChrm"); bereits als aktive Zeile eingetragen? Es ist doch wohl so, dass ich sie auf jeden Fall brauche.
Früher gabst die Zeile nicht und damit hätte es damals auch nie geklappt, ein Script einzubinden. Erst nach einem Addon Update (Nummer k.A.) konnte man es mit dem Einzeiler für alle Scripte (*xul und *js) schaffen.
Um das alles damals bewerkstelligen zu können, musste man ein Extra "Sub-Script/Overlay Loader" Script inne haben. Und da ja dieses Script immer noch gibt und es auch immer noch funktioniert, ist der heute Einzeiler halt nicht zwingend nötig.Ansonsten habt ihr wohl alle eine an ner Pfanne! Wir sind hier nicht bei "Wünsch dir wat"! Sondern bei "Nimm und wenns dir nicht gefällt, dann pack schnell wieder ein".
-