Das frage ich mich auch. Super, Mithrandir!!
Grüße
milupo
Das frage ich mich auch. Super, Mithrandir!!
Grüße
milupo
Klasse, Mithrandir :klasse: Nur, bei mir funktioniert es bisher nicht Habe den Eintrag irgendwo zwischen die anderen Dateitypen gepackt, deren Einträge ähnlich aufgebaut ist. Sollte doch eigentlich richtig so sein, oder? Unter Extras > Einstellungen > Anwendungen taucht auch kein neuer Eintrag auf. Wie klappt es bei anderen bisher? Wo genau habt ihr den Eintrag eingefügt?
Hallo bluemule ,
ich habe den Code ganz oben eingefügt.
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="urn:mimetype:handler:image/jpeg"
NC:alwaysAsk="true"
NC:saveToDisk="true">
<NC:externalApplication RDF:resource="urn:mimetype:externalApplication:image/jpeg"/>
<RDF:Description RDF:about="urn:mimetype:application/x-javascript"
NC:value="application/x-javascript"
NC:editable="true"
NC:fileExtensions="js"
NC:description="JScript Script File">
<NC:handlerProp RDF:resource="urn:mimetype:handler:application/x-javascript"/>
</RDF:Description>
</RDF:Description>
<RDF:Description RDF:about="urn:mimetype:application/x-xpinstall"
NC:value="application/x-xpinstall"
NC:editable="true"
NC:fileExtensions="xpi"
NC:description="">
<NC:handlerProp RDF:resource="urn:mimetype:handler:application/x-xpinstall"/>
</RDF:Description>
Alles anzeigen
Hallo edvoldi,
danke für deine Antwort. Das tut bei mir auch nicht. Ich habe wie gesagt bereits eine andere Lösung, die sehr gut funktioniert. Deswegen bitte keine größere Mühe machen. Aber wenn durch Erfahrungsaustausch und Diskussion möglichst viele zu einer Lösung kommen, ist das denke ich eine gute Sache.
Viele Grüße
Hallo bluemule ,
ich hoffe doch das hast Du eingetragen als der Firefox nicht aktiv war oder?
Ja, also bzw. ich habe es in mimeTypes.rdf eingetragen, gespeichert und Firefox mehrmals neugestartet und auch diverse Caches zwischendurch gelöscht (vielleicht habe ich einen besonderen mimeTypes-Cache nicht erwischt?). Beim Speichern der js-Dateien bin ich alle möglichen Varianten durchgegangen (im Speicherndialog "Alle Dateien" ausgewählt, im Windowsexplorer Dateiendungen anzeigen lassen usw.).
Viele Grüße
Probiere es mal mit einer neuen mimeTypes.RDF (Firefox beenden, ursprüngliche Datei umbenennen, beim nächsten Start wird eine neue erstellt), die du um meinen Eintrag ergänzt. Oder verwende mal diese Datei:
<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<RDF:Description RDF:about="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&url=%s"
NC:prettyName="Googlemail"
NC:uriTemplate="https://mail.google.com/mail/?extsrc=mailto&url=%s" />
<RDF:Description RDF:about="urn:scheme:handler:ircs"
NC:alwaysAsk="true">
<NC:possibleApplication RDF:resource="urn:handler:web:https://www.mibbit.com/?url=%s"/>
</RDF:Description>
<RDF:Description RDF:about="urn:root"
NC:de_defaultHandlersVersion="3" />
<RDF:Description RDF:about="urn:scheme:handler:mailto"
NC:useSystemDefault="true"
NC:alwaysAsk="false">
<NC:possibleApplication RDF:resource="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&url=%s"/>
<NC:possibleApplication RDF:resource="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"/>
</RDF:Description>
<RDF:Seq RDF:about="urn:schemes:root">
<RDF:li RDF:resource="urn:scheme:webcal"/>
<RDF:li RDF:resource="urn:scheme:ircs"/>
<RDF:li RDF:resource="urn:scheme:mailto"/>
<RDF:li RDF:resource="urn:scheme:irc"/>
</RDF:Seq>
<RDF:Description RDF:about="urn:scheme:irc"
NC:value="irc">
<NC:handlerProp RDF:resource="urn:scheme:handler:irc"/>
</RDF:Description>
<RDF:Description RDF:about="urn:scheme:handler:irc"
NC:alwaysAsk="true">
<NC:possibleApplication RDF:resource="urn:handler:web:https://www.mibbit.com/?url=%s"/>
</RDF:Description>
<RDF:Description RDF:about="urn:mimetype:application/x-javascript"
NC:value="application/x-javascript"
NC:editable="true"
NC:fileExtensions="js"
NC:description="JScript Script File">
<NC:handlerProp RDF:resource="urn:mimetype:handler:application/x-javascript"/>
</RDF:Description>
<RDF:Description RDF:about="urn:scheme:mailto"
NC:value="mailto">
<NC:handlerProp RDF:resource="urn:scheme:handler:mailto"/>
</RDF:Description>
<RDF:Description RDF:about="urn:scheme:webcal"
NC:value="webcal">
<NC:handlerProp RDF:resource="urn:scheme:handler:webcal"/>
</RDF:Description>
<RDF:Description RDF:about="urn:schemes">
<NC:Protocol-Schemes RDF:resource="urn:schemes:root"/>
</RDF:Description>
<RDF:Description RDF:about="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"
NC:prettyName="Yahoo! Mail"
NC:uriTemplate="http://compose.mail.yahoo.com/?To=%s" />
<RDF:Description RDF:about="urn:handler:web:https://www.mibbit.com/?url=%s"
NC:prettyName="Mibbit"
NC:uriTemplate="https://www.mibbit.com/?url=%s" />
<RDF:Description RDF:about="urn:scheme:ircs"
NC:value="ircs">
<NC:handlerProp RDF:resource="urn:scheme:handler:ircs"/>
</RDF:Description>
<RDF:Description RDF:about="urn:handler:web:http://30boxes.com/external/widget?refer=ff&url=%s"
NC:prettyName="30 Boxes"
NC:uriTemplate="http://30boxes.com/external/widget?refer=ff&url=%s" />
<RDF:Description RDF:about="urn:scheme:handler:webcal"
NC:useSystemDefault="true"
NC:alwaysAsk="true">
<NC:possibleApplication RDF:resource="urn:handler:web:http://30boxes.com/external/widget?refer=ff&url=%s"/>
</RDF:Description>
</RDF:RDF>
Alles anzeigen
Bei mir taucht damit Unter Extras > Einstellungen > Anwendungen auch kein neuer Eintrag auf, es funktioniert aber trotzdem.
Jau, so* funktioniert es. Danke für den super Tipp Und ich verstehe jetzt auch, was die Änderung genau macht: Im Speicherndialog wird nun unten bei Dateityp, wo es vorher .txt und "Alle Dateien" zur Auswahl gab, auch "JScript Script File" angezeigt und das ist sogar bereits angewählt. Absolut top :klasse:
Viele Grüße
Edit: *Ich habe die mimeTypes.rdf gelöscht, neu erstellen lassen und dann den Eintrag eingefügt.
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: so in etwa sieht es bei mir auch unter "Anwendungen" in dem Profil, mit dem der Download ohne ".txt" klappte, aus. Als ich den Unterschied feststellte, war es nur noch ein kleiner Schritt, den entsprechenden Eintrag in der Datei zu finden. Soviel also zu deiner Frage, wie ich auf den "Hack" kam. Die Skripte 318-320 sind nun übrigens auch auf GitHub, kannste also verlinken.
Hallo zusammen
Griever hat Nachschub:
Neu: CrossFireModoki.uc.js
Update: Inspector_de_Info.uc.js
Mfg.
Endor
Technische Updates, bzw. Modifikationen der Scripte:
FindbarClearButton.uc.js
Inspector_de_Info.uc.js
UndoCloseTabButton.uc.js
321. 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.
Hallo loshombre.
Alice hat was neues: contextMenuImageRotate.uc.js
Mfg.
Endor
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ü.
Hallo loshombre.
Na rate mal warum das Script von Alice nicht läuft.
Eben getestet, geht nur mit seiner Monster userchrome.js.
CrossFireModoki.uc.js von Griever, da blicke ich auch nicht durch.
Im übrigen ihr werdet auch in Asien beobachtet: http://a.hatena.ne.jp/Zhothaqquah/
Mfg.
Endor
ZitatEben 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).
Zitat von loshombreIst mir bekannt. Und nicht nur dort. Auf mehreren japanischen Seiten /Foren und auch bei den Chinesen (auch schon länger).
Dachte mir schon so was in der Art. :wink:
Was die Monster userchrome.js betrifft.
Die habe ich hier in einem Testprofil schon länger am laufen.
Ich habe das Gefühl, damit startet Firefox besser, bzw. die Scripte
werden schneller und irgendwie „sauberer“ geladen. Es fühlt sich einfach beim Starten
irgendwie geschmeidiger an. Kann mich auch nur täuschen.
Man sollte dieses „Monster“ vielleicht als Alternative zum laden der Scripte
erwähnen, und dann könnte man eventuell mit entsprechender Info auch die
paar Scripte, die nur damit laufen einpflegen. Ist nur so eine Idee von mir.
Was meinst Du dazu?
Mfg.
Endor
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.
Hallo loshombre
Für die beiden Scripte braucht es den Sub-Script/Overlay Loader v3.0.38mod
den Alice in die seine userChrome.js integriert hat.
So steht es seit heute in den beiden Scripten bei Alice.
contextMenuImageRotate.uc.js
rebuild_userChrome.uc.xul
„Required Sub-Script/Overlay Loader v3.0.38mod“
Leider kapiere ich nicht, wo in seinem „Monster“ dieser Loader Anfängt und wieder Aufhört.
Oder ist das ganze „Monster“ dieser Loader?
Hast Du da einen Plan?
Aber ich stimme Dir voll und ganz zu, das ist nur was für Spezialisten.
Für Github, bzw. eure Sammlung, wäre das definitiv nichts.
Mfg.
Endor
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.
/* :::::::: 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");
}
})();
Alles anzeigen