lenny2 A new version of your script, without security.allow_unsafe_dangerous_privileged_evil_eval set to true!
v139.0b4. Die deutsch-französische Team hat gute Arbeit geleistet
lenny2 A new version of your script, without security.allow_unsafe_dangerous_privileged_evil_eval set to true!
v139.0b4. Die deutsch-französische Team hat gute Arbeit geleistet
Also, wie auch immer, das Skript von lenny2 funktioniert bei mir nicht.
v139.0b4 security.allow_unsafe_dangerous_privileged_evil_eval set to true
Google Context Translation. Übersetzt in einem Pop-up-Fenster, nicht in einer neuen Tab. Getestet mit v139.0beta3.
// google-context-translate.uc.js (any > de)
location.href.endsWith("://browser/content/browser.xhtml") && ({
async init(func) {
await delayedStartupPromise;
var code = func.toString();
code = code.slice(code.indexOf("{") + 1, -1).trim();
var addEventListener = (...args) => {
var trg = args[3];
if (!trg) trg = args[3] = window;
trg.addEventListener(...args);
this.handlers.push(args);
}
new Function(
"_id,xhtmlns,addDestructor,addEventListener,gClipboard,LOG", code
).call(
this, "cbinit-google-translate", "http://www.w3.org/1999/xhtml",
() => {}, addEventListener, {read: readFromClipboard}, Cu.reportError
);
window.addEventListener("unload", this, {once: true});
},
handlers: [],
handleEvent() {
for(var args of this.handlers)
args.pop().removeEventListener(...args);
delete this.handlers;
}
}).init(() => {
// Here's the code google-context-translate.uc.js
// Google
var langFrom_google_text = "auto"; //auto
var langTo_google_text = "de";
// Assign icons
var mainicon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADKElEQVR42p2TX2hTdxTHPzfJTW6T3qQmapvWabUbog+udp3kYeLQ4f6wiZQNtjlXHyZaBYe6TekYVGRQYexFscOtuD7UdWxzMtAXEbZStKIbDsaUCbVj9o8mTW+aNrlJbu5vJ8Ex2OMO/Lj87jnne873nO9PSyTV3tkAfYi5NhQ1MB1Ijc3ijN+D7CQh28YK+GHDMyxpjlJTkmAdQi5dWvOsUrYkGB5QC5Kcg/aFBxxqqycmcY38a/1yTqYgMw8ByfFKjtZ4V6myCeW8IApyfOw2155fw1DG4dOJJK1r45x5BPDUpZuMr2uXSuAvgBMQgOitjLJNn7iDSJP0rIJ35dt19TeGoi0Es1MMP72KFvm3+88phuYM3HCd3ObQizpa/cW7Kh020E0Tz1yOUxvjdIr7o6t/cLpkEJqZp7s5zN62ZewfnWLQ9VIIBqodBdI5tIbBG8oKhSAaJZDN8tpSP5+3L8eVgLbeAdKal7NH3mKL3FcOXCfV1ITjc7FLFrWZIlpt/4+qEA7hLRrCwk/RusOXu7ax8xHvGTkVgi/89As/T8ia9EUyghKOWSaYyqNx8oIiuEgcshetsooceibJinvTfNH1DpseD3LHSZE4eprs6k24NQaevI1fF8q5FJqv9xvlmFLdkKZlhb77E8TdIlFD54OOl3mzdXm1k+sP0jzbdwF7cRhsj8ysAWYnpYPeQfXPnn3JJG8/sZT+PW8gkuDbkWEiRh3b29dV/edujNE5dB4nHJSCUrQsTdP9mUKrCKHA5piHK+918quVp/VoD9W9uhGejNRx6+N9VZAmoTJZmhbK4vR7BGDPCQEQ/qU8R15aT2/Hi/R8PcyxyyMyVBmaXwIfPiTVf5yYHiF28ARpOyuqk3nJ4DV2HFc4SamUZ3vrGr7vPlitFNraQc4SzZZt6ptWMv3DAOdGrrGj7yvR+2KYr5A0BeCVAwqvBQuyMG+MTzp3cvj15/ivfXfzNq++/yFEIlD7GFjZ6uPRaE4oGuNQI68jIINJu0QbTFoadIJlL7lSgb8sxbSVEb8geUUVtkh55r50MY5Wec6jibV9/A9LjP7e9TdFQScjW9P1XAAAAABJRU5ErkJggg==";
function GetXmlHttpObject(){
if (window.XMLHttpRequest){ return new XMLHttpRequest();}
if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");}
return null;
};
var lc = navigator.lastClick = {};
addEventListener("mouseup", e => {
if (e.button) return;
lc.X = e.screenX - mozInnerScreenX;
lc.Y = e.screenY - mozInnerScreenY;
}, false, gBrowser.tabpanels || 1);
var createWindow = function(text, status, title, id, pos, size){
var win = window, doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
if(w)w.closeWin();
// Close the pop-up window by clicking on the page (next 4 lines of code)
gBrowser.addEventListener("click", function c() {
this.removeEventListener("click", c );
try { doc.getElementById(wId).closeWin() } catch(e) {};
}, true );
w = doc.createElementNS(xhtmlns, 'div');
w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:2px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#eaeaea;padding-top:0px;border-radius:4px;box-shadow:0 0 15px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
w.id = wId;
w.closeWin = function(){
doc.removeEventListener('keydown', keyDown, false);
this.parentNode.removeChild(this);
};
w.addEle = function(str, style){
var ele = doc.createElementNS(xhtmlns, 'div');
ele.setAttribute('style', style);
if(str){
ele.innerHTML = str;
for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
el = all[i];
if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
el.parentNode.removeChild(el);
}
else{
for(var att = el.attributes, j = att.length; j--;){
if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
}
}
}
};
return this.appendChild(ele);
};
w.addEle1 = function(str, style){
var ele = doc.createElementNS(xhtmlns, 'textarea');
ele.setAttribute('style', style);
if(str){
ele.innerHTML = str;
for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
el = all[i];
if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
el.parentNode.removeChild(el);
}else{
for(var att = el.attributes, j = att.length; j--;){
if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
}
}
}
};
return this.appendChild(ele);
};
var img = doc.createElementNS(xhtmlns, 'div');
img.setAttribute('style', 'display:block;float:right;width:22px;height:22px;padding:0;margin-top:2px;margin-right:1px;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAIAAABL1vtsAAAACXBIWXMAAArEAAAKxAFmbYLUAAABc0lEQVQ4y2P84mzGQBlgYaAYoBjBrKn79/plgnrQlCGM4Jwwj0lC6kdjKX5TmDV1Oeq7/7149r0gCcUIZk1dJgkpBgYGjvruXyvm/96wErt+fWOOylYGBgYmCSm4WxjhwQkxHsL+vW39r0Uz0f3s6M6eVsDAyMjAwIDsWEbkGGHW1OWoaGFgZ8c0BaH///8fHbV/L56BSzGiRSqztj5HWROaKcj6f86e+GffDmQtjJjpAs2Uf48f4NGP3Qg0U6AAh36cRkBNqWhmYGWDcH/OmoBVP77UySgmwcDCCucyyciTlsCRw4/hz28GVjZWr0AGBgbMmMZuBFr4/3/5nKOskYGdA5cp6GGBNf6YtfUhpmBNdShGsFjas+dVYI0/ZFN+zZ/2e+cmLEYgEjiO+MNlCtQI5Azyc1L7n2MHsQYzk4o6Z8tECBtuCjQ4/16//O/FM4KZ/d+dm99r8jlbJv69eRXdFSQVOUwq6v/u3CScOuladgIAhMrZgyTDTBwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");');
img.title = (win.navigator.language.indexOf('de') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
w.appendChild(img);
var title = w.addEle(title, 'display:table;color:#000;font:17px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
title.onclick = e => {
e.preventDefault();
var url = e.target.href;
// This is where we open the url the way we want
var ctabpos = gBrowser.selectedTab._tPos +1;
gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addWebTab(url), ctabpos);
doc.getElementById(wId).closeWin();
}
var cnt = w.addEle1(text, 'display:block;border:1px solid #aaa;padding-bottom:3px;padding-left:3px;background-color:#f2ffe6;color:#8c0023;font:24px Times New Roman;width:600px;height:200px;overflow:auto;cursor:text;-moz-user-focus:normal;-moz-user-select:text;');
cnt.contentEditable="true";
cnt.context="contentAreaContextMenu";
w.addEle(status, 'display:table;font:14px Times New Roman;font-weight:bold;color:blue;width:auto;height:auto;padding-top:2px;margin:0 3px;cursor:pointer;');
w.addEventListener('mousedown', function(e){
if(e.target == w){
e.preventDefault();
var st = w.style;
var mouseMove = e => {
st.top = parseInt(st.top) + e.movementY + "px";
st.left = parseInt(st.left) + e.movementX + "px";
}
doc.addEventListener('mousemove', mouseMove, false);
doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
}
}, false);
doc.documentElement.appendChild(w);
if(size){
cnt.style.height = size.height;
cnt.style.width = size.width;
}
else{
for(var i = 3; i < 10; i++){
if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
cnt.style.height = 80*i+'px';
cnt.style.width = 160*i+'px';
}
else break;
}
};
var docEle = (doc.compatMode == 'CSS1Compat' && win.postMessage) ? doc.documentElement : doc.body;
var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
var hW = parseInt(w.offsetWidth/2);
w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
w.style.visibility = 'visible';
doc.addEventListener('keydown', keyDown, false);
return w;
};
var getHash = function (txt) {
TKK=eval('((function(){var a\x3d817046147;var b\x3d-335196159;return 410049+\x27.\x27+(a+b)})())');
function sM(a) {
var b;
if (null !== yr)
b = yr;
else {
b = wr(String.fromCharCode(84));
var c = wr(String.fromCharCode(75));
b = [b(), b()];
b[1] = c();
b = (yr = window[b.join(c())] || "") || ""
}
var d = wr(String.fromCharCode(116))
, c = wr(String.fromCharCode(107))
, d = [d(), d()];
d[1] = c();
c = "&" + d.join("") + "=";
d = b.split(".");
b = Number(d[0]) || 0;
for (var e = [], f = 0, g = 0; g < a.length; g++) {
var l = a.charCodeAt(g);
128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023),
e[f++] = l >> 18 | 240,
e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224,
e[f++] = l >> 6 & 63 | 128),
e[f++] = l & 63 | 128)
}
a = b;
for (f = 0; f < e.length; f++)
a += e[f],
a = xr(a, "+-a^+6");
a = xr(a, "+-3^+b+-f");
a ^= Number(d[1]) || 0;
0 > a && (a = (a & 2147483647) + 2147483648);
a %= 1E6;
return c + (a.toString() + "." + (a ^ b))
}
var yr = null;
var wr = function(a) {
return function() {
return a
}
}
, xr = function(a, b) {
for (var c = 0; c < b.length - 2; c += 3) {
var d = b.charAt(c + 2)
, d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d)
, d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d
}
return a
};
return sM(txt);
};
// Translate text from the clipboard
var ujs_google_translat = function (dir){
var lng = 'de';
var txt = gClipboard.read();
var l = dir.split('|');
var encTxt = encodeURIComponent(txt);
var winWait = function(lng){createWindow('', (lng == 'de' ? 'Warten bis der Text übersetzt ist' : 'Wait, is going Translating')+'\u2026', 'Google Translate', '_gt', window.navigator.lastClick)};
if (txt) {
winWait(lng);
var xhr = new XMLHttpRequest();
var url = 'https://translate.google.com/translate_a/single?client=gtx&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);
var urlt = "http://translate.google.com/translate_t?text="+encTxt+"&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&ujs=gtt";
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
xhr.onreadystatechange = function() {
try{
if (xhr.readyState == 4 && xhr.status == 200) {
var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0').replace(/\\n/g, "<br />"));
for(var i = 0, n; n = tmp[0][i]; i++){
if(n[0])result += n[0].toString();
};
status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + l[1].toUpperCase();
createWindow(result, status, '<a href="'+urlt.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:22px Times New Roman;">Google Translate</a>', '_gt', window.navigator.lastClick);
}
} catch (x){LOG(x)};
};
xhr.send('q=' + encodeURIComponent(txt));
};
};
// Translate selected text
function ujs_google_translate (){
var lng = 'de';
var txt = gContextMenu.selectionInfo.fullText;
var encTxt = encodeURIComponent(txt);
var winWait = function(lng){createWindow('', (lng == 'de' ? 'Warten bis der Text übersetzt ist' : 'Wait, is going Translating')+'\u2026', 'Google Translate', '_gt', window.navigator.lastClick)};
if (txt) {
winWait(lng);
var xhr = new XMLHttpRequest();
var url = 'https://translate.google.com/translate_a/single?client=gtx&sl=' + langFrom_google_text + '&tl=' + langTo_google_text + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);
var urlt = "http://translate.google.com/translate_t?text="+encTxt+"&sl=' + langFrom_google_text + '&tl=' + langTo_google_text +'&hl=' + lng + '&eotf=0&ujs=gtt";
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
xhr.onreadystatechange = function() {
try{
if (xhr.readyState == 4 && xhr.status == 200) {
var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0').replace(/\\n/g, "<br />"));
for(var i = 0, n; n = tmp[0][i]; i++){
if(n[0])result += n[0].toString();
};
status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + langTo_google_text.toUpperCase();
createWindow(result, status, '<a href="'+urlt.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:22px Times New Roman;">Google Translate</a>', '_gt', window.navigator.lastClick);
}
} catch (x){LOG(x)};
};
xhr.send('q=' + encodeURIComponent(txt));
};
};
// Context menu for translation from clipboard
(function () {
if ( document.getElementById("TranslateBufer") ) return;
var contextMenu = document.getElementById("contentAreaContextMenu");
var Item = document.createXULElement("menuitem");
Item.setAttribute("label", "Translate from clipboard");
Item.setAttribute("class", "menuitem-iconic");
Item.setAttribute("image", mainicon);
Item.addEventListener("command", function(){ujs_google_translat('auto|de')}, false);
contextMenu.insertBefore(Item, document.getElementById("context-viewpartialsource-selection") );
addDestructor(function() { contextMenu.removeChild( Item ) });
})();
// Context menu for text translation
(function () {
if ( document.getElementById("TranslateSelected") ) return;
var contextMenu = document.getElementById("contentAreaContextMenu");
var Item = document.createXULElement("menuitem");
Item.setAttribute("id", "TranslateSelected");
Item.setAttribute("label", "Translate selected text");
Item.setAttribute("class", "menuitem-iconic");
Item.setAttribute("image", mainicon);
Item.addEventListener("command", function(){ujs_google_translate()}, false);
contextMenu.insertBefore(Item, document.getElementById("context-viewpartialsource-selection") );
addDestructor(function() { contextMenu.removeChild( Item ) });
addEventListener("popupshowing", function() {
Item.hidden = !gContextMenu.isTextSelected;
}, false, contextMenu );
})();
});
Alles anzeigen
Mozilla hat die Systemerweiterungen (Ordner \features\) vollständig aufgegeben. Einige Erweiterungen wurden nach omni.ja verschoben, einige wurden entfernt https://bugzilla.mozilla.org/show_bug.cgi?id=1938155
Danke, ich verstehe. Die "Clip url" Erweiterung hat genau die gleiche Funktionalität.
Bitte probieren Sie ein nützliches kleines Skript für Monkey aus.
// ==UserScript==
// @name Google Search Numbering
// @description Makes Google search results numbered
// @namespace Greasymonkey Scripts
// @icon https://www.google.com/favicon.ico
// ==/UserScript==
function numberHeadings() {
let h3s = document.getElementById('rso').getElementsByTagName('h3');
let count = 1;
for (let i = 0; i < h3s.length; i++) {
if (h3s[i].innerText === 'Map' || h3s[i].getAttribute("role") === "heading") {
i += 1;
continue;
}
h3s[i].innerText = (count++) + '. ' + h3s[i].innerText;
}
}
numberHeadings();
Alles anzeigen
ich habe hier obiges Skript angepasst (.jsm nach .sys.mjs).
Hallo, dieses Skript funktioniert nicht wieder, v139.0beta2
Probiere mal diese Version:
v139.0b1. Auf der Einstellungsfenster verschiebt sich der Trenner je nach Klickpunkt. Um das Problem zu reproduzieren, klicken Sie mit der rechten Maustaste an verschiedene Stellen auf der Einstellungsfenster. Es ist besser, die Option für die Einstellungsfenster vollständig zu entfernen.
#alltabs-button ändern?
Mit Tab-Zähler
/* userChrome.css */
#alltabs-button {
display: -moz-box !important;
}
/* tab counter */
#TabsToolbar-customization-target {
counter-reset: tabCount;
}
.tabbrowser-tab {
counter-increment: tabCount;
}
#alltabs-button > .toolbarbutton-badge-stack > .toolbarbutton-icon {
visibility: collapse !important;
}
#alltabs-button > .toolbarbutton-badge-stack {
position: relative !important;
}
#alltabs-button > .toolbarbutton-badge-stack::before {
content: counter(tabCount);
border-bottom: 1px solid var(--toolbarbutton-icon-fill);
color: var(--toolbarbutton-icon-fill);
opacity: var(--toolbarbutton-icon-fill-opacity);
position: absolute;
bottom: var(--toolbarbutton-inner-padding);
left: 50%;
transform: translateX(-50%);
padding: 0 3px;
color: orange !important; /* digit color */
background-color: blue; !important; /* background color */
}
/* CSS by 2002Andreas */
#allTabsMenu-allTabsView > .panel-subview-body {
background-color: red !important;
color: white !important;
font-size: 22px !important;
}
Alles anzeigen
bei mir funktioniert das Script für den Aufruf des Profilordners leider nicht mehr.
Funktioniert, v138
// Open_Profiles_Folder.uc.js
try {
CustomizableUI.createWidget({
id: "openfolder-profiles",
label: "Profiles Folder",
tooltiptext: "Open Profiles Folder",
defaultArea: CustomizableUI.AREA_NAVBAR,
onCreated: btn => btn.image = "data:image/gif;base64,R0lGODlhEAAQAOZMAP/////MAF06AJhlAJNgAP//AP/lAP/UAJViAP/JANShAJRhAP/OAJRgAOy5AMaSAP/nAMyZAP/IAP/NAOazAP/RAMmVALaAAH5TAJNfAM2aAP/dT//XOv/KAOPOkMeRAP/nhOSxAOu4AP3KAOrTkv/nrv//1c6bAKdyAP/TAP/bPdWsMr6LA7iCALqGALiEAJNeAMCMAP/gcv/eYdGdAP/TEP/mgv/2y//gg/3JAP/ila97AP/aKsWPAJFbAJZgALeBAMiVAPC9AP/rOum2AHlQAP/4zP//z//jPpNdAP/LANixNP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAEwALAAAAAAQABAAAAefgEyCg4SFhoeFDQ0LjIiCCyU5IwEBBAiXCAOEBDohFBREIg6jQgibODQKqgonDz0fPkkwDQMEMhYRERpBMUsAv8C1Mw8uLUAXKwA2EgkJDJoEGy8swAAgCZQMz0wEKigkN8wJHZQBFZrcPDsAHErllBMT6AQ1HkYVKQf6++hMGUgAhhgYSBAChH4/TBwpwLAhw35MMAiYSLFiEUcYmQQCADs=",
onCommand: function(event) {
Services.dirsvc.get("ProfD", Ci.nsIFile).launch();
}
});
} catch(e) {}
Alles anzeigen
bei mir funktioniert das Script für den Aufruf des Profilordners leider nicht mehr.
Verfügt über keine Button, funktioniert über Hotkeys
// OpenProfileFolder(Alt+P).uc.js
(function(win){
function openProfileDirectory() {
Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("ProfD", Components.interfaces.nsIFile)
.launch();
}
if(typeof win.openProfileDirectory == 'undefined') {
win.openProfileDirectory = openProfileDirectory;
win.addEventListener('keydown', function(e) {
if (e.altKey == true && e.keyCode == 80) {
e.preventDefault();
openProfileDirectory();
}
}, false);
}
})(window);
Alles anzeigen
Auch das Script RestartFirefoxButtonM.uc.js hat keine Wirkung mehr.
Habe gerade gesehen, daß ein weiteres Script nicht mehr funktioniert.
Diese funktionieren.
Restart Button in toolbar RE: Firefox 136 - Restart Button Script geht nicht mehr
Restart Button in hamburger RE: Div. Skripte funktionieren im aktuellem Nightly nicht mehr
Folgendes Script funktioniert in FF 138 nicht mehr bzw. erfolgt kein Start.
Dieser Code funktioniert
try {
CustomizableUI.createWidget({
id: "add-BB-app",
label: "Betterbird",
tooltiptext: "Betterbird Start",
onCreated: btn => btn.image = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAE+UlEQVRIibVVXWxUVRCec8/9272729otbm0CtoWGEgFFygMKMdUEEjVWMV0N/pGYWIwPojEmao2amMgDRkVDAolo0DQECkEkEhRYiEFEa6VNKKXdttKltrttl+7uvXv3nl8fsKVFqEDCJPNwZubMN+ebyRmAWyzo/wJkLhdhjK1ACC1ECIVBSiIRGsAAv0Eo1IYQIjcFYCeTd+sYv4XynQ9IxdClUe4DxW+CoBzxiw4qJKg0K0aEWrLNCIe3IoTc6wKQUuJcMtmkjZ96VR1qlvTOV0xpzfcjND1UCo/jwW+zijuIaeWGPk8Y60pmz26fEUDGYup4ddXXvvjn9Xhov+Le950mtSJtJgrUxE7H6NmsFGq/ypHQ/GhJefnxqX5l6mGsqmqj0bGp3vjzE5+9YBOiyNIYYzCTumVP+pm2QPiONBSj8fjOVCJRfVWA4Xj8IeGMNGrn9oFnLfO80F0+yhgwN8P0tk8vhvatzhW1rMhbh55zcPcehxBXUMaAcY7sqkZFSY+quP9HQ3jOtlgspk4DkFJiRvLvB4++STkvMQolKxHjAhjnILJ/54Tr5VAqoeDhAb/Re0IN/PwhuW3f0wXmpBnjHNxAtc5pCUfJHmx0fFM7r7z8sWkA/Z2dtfq5g0vMzlhI5lGG4FJOKQVKKcD4sGn98mU5TtsW2ADCwRpkvJDR124W//SuRykFJhEWLFhQL/S4gV+3q4wWGid7BABAGXvEPBtDYEusDcQ1WZlTGeeAaIGV7nkd4XxBBQA5tuJlZ/ze53Wh+TQjddaddXRjgXFuSSGkzDHQUl1FiLiGkuxZ2tXVVVpTUzOqAAAwSu9xg9Ue2AA4bRfp8dOcMgb+joNETY2ZYAN4ZoWbXPqiRbCpMyGRU1rjv7D6I5MyBjKTJOpQ0ofTeZNDqeeplkldd/7lHuSz4UDbEUGV27NgAwTbjmkyO0Z8Z04KsAHABpCuCozzaRNUsGZZjDEItB5gSpapYAMU/BWZ0IndlFNaNkkR41wa/f0BRD0ACYBtW4+0fOwo2RET7EtcmnavYcbbXbtykX/qGOojCS9yYLsGBQABiAU7WkudcI3DOb/cA0/Rxwq+O8BK9xkTF8PHD/q5qgtgExaJKze/oZ6PvuZkFyzTJAAUdbfRObs/03DW1i/RIVUAJO3SSt2jdHgSgAhxuvuZprqq5s2kqOt08N+MCAPBU6vV7Kw+74sPdKGoBABAEcya6me6SROPPmunFq5UCOfnJntACfnB6IuD1RlXwEZ8gvdrqZJlupJl+pV2ZEsSOXxIo5yfqqurG518wWgm0yoXL2uvFP5a1banVX0jgsGzEk88bBMpt07YFACAaDTKmaa/d/aFRo+7SAgX4GY0E6nI/1W3ulUzzf1XrWD/3r2bzjQ05BwAkQeQN6IXi4u9w1u2DH3f0jLts5tGx0vr1x8drKioIRjPDXR2qkJKxAGAAwDRdYcJoVLDsAXnxoSdA4Adibh/NDVlnbKypx5vaGibmvM/C2fXrl0YOH8n2N29Ye6OHUagr8+HpESp5ctHZ508GXbmzHEUQrB/eNgnDIMMrlpFB9as6SaGsW7t2rUdV+a75spsbm5eLDl/O9jb+2Cgv98vEeKRY8ck9/lQor4ezHQap5csGaCh0FZN07ZFo9HrW5lXAYpQSu+XUi4CgLACQCRC5xUhfjcsqy0ajc649G+5/ANe1OtU6F5WHAAAAABJRU5ErkJggg==",
onCommand: function(event) {
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
file.initWithPath("C:\\Program Files\\Betterbird\\betterbird.exe");
if (file.exists()) file.launch();
}
});
} catch(e) {}
Alles anzeigen
Ctwx Die Höhe wird größer, wenn Sie die Schrift vergrößern. CSS von 2002Andreas.
.tab-group-label {
tab-group[collapsed] > .tab-group-label-container > & {
font-size: 17px !important;
font-family: cursive; !important;
padding-inline: 8px !important;
}
}
.tab-group-label {
tab-group > .tab-group-label-container > & {
font-size: 17px !important;
font-family: cursive; !important;
padding-inline: 8px !important;
}
}
Alles anzeigen
Teste bitte:
Danke, funktioniert.
BrokenHeart Vielen Dank 2002Andreas Danke für das CSS für das Skript
Nur zur Info.
Die alte Version aus Beitrag Nr. 1, angepasst für v136.0a1, hat ein starkes positives Feature – sie legt die Breite des Dropdown-Menüs automatisch abhängig vom längsten Elementnamen fest. Diese Option wäre im Skript für v139.0a1 nützlich.
Beim Skript von Endor (#8) kann man als Workaround die Zeile 69 anpassen und zwar so:
Bestätigt, es funktioniert, Fehler in der Konsole
Uncaught TypeError: can't access property "getButton", document.getElementById(...) is null saveTo debugger eval code:45
Der Code aus Beitrag #1 funktioniert genauso, wenn Sie die Änderungen aus Beitrag #2 (fügt Unterstützung für v136, v137, v138 hinzu) und Beitrag #13 (fügt Unterstützung für v139 hinzu) vornehmen. Fehler in der Konsole
Uncaught TypeError: can't access property "getButton", document.getElementById(...) is null saveTo debugger eval code:25
Dies gilt wahrscheinlich nicht für den Konsolenfehler und es macht keinen Sinn, es zu posten? saveTo debugger eval code:25
Hm und es gibt keine Analogie im Internet