Полезная информация

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№1642612-05-2022 19:32:26

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 258
UA: Firefox 100.0

Re: Custom Buttons

DumbyЭто addon-card:not([expanded]) .addon-description
как text-overflow: ellipsis; тут заделать? В простом виде он есть, нажал и его нет...
rn7rws3n.jpg

Отредактировано ВВП (12-05-2022 19:34:01)

Отсутствует

 

№1642712-05-2022 22:04:28

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1702
UA: Firefox 78.0

Re: Custom Buttons

ВВП пишет

addon-card:not([expanded]) .addon-description

Считаю CSS для себя непостижимым,
но чуть поднять глаза от этой строки наверх вполне возможно.

скрытый текст

Выделить код

Код:

.card-contents {
	width: 1px !important;
	white-space: nowrap !important;
}
.addon-description {
	overflow-x: hidden !important;
	text-overflow: ellipsis !important;
}

Отсутствует

 

№1642812-05-2022 22:32:34

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 258
UA: Firefox 100.0

Re: Custom Buttons

Dumby
Не в жизнь бы не допер...вся фишка в этом... Благодарочка !
.card-contents {
    width: 1px !important;
    white-space: nowrap !important;
}

Отсутствует

 

№1642912-05-2022 22:45:52

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1702
UA: Firefox 78.0

Re: Custom Buttons

manuk пишет

Ещё бы, перфекционизма ради, в контекстном меню два пункта было - для ЛКМ и ПКМ.

Предложу попробовать так: пункт один, но, при ПКМ на нём,
параметр /add в командную строку добавлен не будет (симилярно раскликовке самой кнопки).


Код на замену, от начала и до строки var notify = () => {

скрытый текст

Выделить код

Код:

(func => {
	var sysPlayerName = "Pot Player";
	var path = "R:\\PotPlayer\\PotPlayerMini.exe";
	var videoMoved = "Видео перенесено в " + sysPlayerName;
	var noFound = "Не найдено видео на странице, доступное для переноса в " + sysPlayerName;

	
	this.label = "Открыть видео в " + sysPlayerName;
	this.tooltipText = "Л: Видео в плейлист";

	var rmb;
	this._handleClick = arg => {
		var msgName = _id + ":Player";
		var listener = ({data}) => data ? run([data]) : notify();
		messageManager.addMessageListener(msgName, listener);
		addDestructor(() => messageManager.removeMessageListener(msgName, listener));

		var url = "data:charset=utf-8," + encodeURIComponent(
			`(${func})()`.replace("MSG_NAME", msgName)
				.replace("VIDEO_MOVED", encodeURIComponent(videoMoved))
				.replace("CONFIRM", encodeURIComponent("Открыть ссылку в плеере ?"))
		);
		(this._handleClick = arg => {
			rmb = arg;
			gBrowser.selectedBrowser.messageManager.loadFrameScript(url, false);
		})(arg);
	}
	this.oncontextmenu = e => {
		if (e.ctrlKey || e.shiftKey || e.altKey) return;
		e.preventDefault();
		this._handleClick(true);
	}
	var popup = document.getElementById("contentAreaContextMenu");
	addEventListener("popupshowing", {
		get hidden() {
			return !(gContextMenu.onLink || gContextMenu.onVideo || gContextMenu.onPlainTextLink);
		},
		handleEvent() {
			if (this.hidden) return;
			var menuitem = document.createXULElement("menuitem");
			for(var args of Object.entries({
				image: self.image,
				oncommand: "play(event)",
				class: "menuitem-iconic", 
				label: "  В плейлист " + sysPlayerName
			}))
				menuitem.setAttribute(...args);
			menuitem.play = e => {
				rmb = e.button == 2;
				play(gContextMenu.linkURL || gContextMenu.mediaURL);
			}
			document.getElementById("context-savelink").before(menuitem);
			addDestructor(() => menuitem.remove());
			this.handleEvent = e => {
				if (e.target == popup) menuitem.hidden = this.hidden;
			}
		}
	}, false, popup || 1);

	var play = link => custombuttons.confirmBox(null, "Открыть ссылку в плеере ?", "Да", "Отмена") && run([link]);
	var run = args => {
		var file = FileUtils.File(path);
		(run = args => {
			if (!file.exists()) return custombuttons.alertBox("File not exists!", path);
			var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
			process.init(file);
			rmb || args.push("/add");
			process.runwAsync(args, args.length);
		})(args);
	}

Отсутствует

 

№1643013-05-2022 00:23:45

manuk
Участник
 
Группа: Members
Зарегистрирован: 17-10-2010
Сообщений: 250
UA: Firefox 100.0

Re: Custom Buttons

Dumby, перфекционизм состоялся. Низкий полон.)

Отсутствует

 

№1643114-05-2022 22:08:30

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 258
UA: Firefox 100.0

Re: Custom Buttons

Dumby
Как размеры этих значков рихтануть ?
zbn6xsqj.jpg

Отсутствует

 

№1643215-05-2022 11:01:33

manuk
Участник
 
Группа: Members
Зарегистрирован: 17-10-2010
Сообщений: 250
UA: Firefox 100.0

Re: Custom Buttons

Сейчас приходится использовать для поиска по сайту в гугл букмарклет:

скрытый текст

Выделить код

Код:

javascript:%20if%20(window.getSelection)%20selected%20=%20window.getSelection();%20else%20if%20(document.getSelection)%20selected%20=%20document.getSelection();%20else%20selected%20=%20document.selection.createRange().text;%20$s=%20''+selected;%20if(!$s)void%20($s=prompt('%D0%A7%D1%82%D0%BE%20%D0%B8%D1%81%D0%BA%D0%B0%D1%82%D1%8C-%D1%82%D0%BE%20%D0%B1%D1%83%D0%B4%D0%B5%D0%BC?','???'));if($s!=null)void(open('http://www.google.com/search?num=100&q=site:'+%20document.location.hostname+%20'+%20%22'+$s+'%22'))


Эту кнопку можно переделать для выполнения одной функции: "Поиск по сайту в Google"?
скрытый текст

Выделить код

Код:

// Настройка функций кликов мыши для кнопки ..................
this.onclick =e=> {
   if ( e.button == 0 ) {
        var text = getSelect() || custombuttons.promptBox('Поиск по сайту в Google', 'Bведите текст ....')[1];
        text !== '' && searchInWebsite(text);
        } 
               
   e.button == 1 && searchInWebsite(gClipboard.read());
};


// Поиск по сайту в Google ..................
function searchInWebsite(text) { 
   var text = escape( convertFromUnicode("UTF-8", text) );           
   //var domain = Services.eTLD.getBaseDomain( gBrowser.currentURI );
   var domain = encodeURIComponent(content.document.domain);
   var url = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + domain;
   gBrowser.selectedTab = gBrowser.addTab(url); 
};


// Конвертировать текст в юникод ..................
function convertFromUnicode(charset, str) {
   var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter);
   converter.charset = charset;
   str = converter.ConvertFromUnicode(str);
   return str + converter.Finish();
};


// Получить выделенный текст из страницы или false ..................
function getSelect() {
   var sel = gBrowser.contentDocument.defaultView.getSelection().toString()
   return (sel == '') ? false : sel.toString().replace(/^\s+|\s+$/g,"");
};


// Подсказка для кнопки ..................
this.tooltipText = "Поиск по сайту \nЛ: Поиск выделенного или введённого текста \nС: Поиск текста из буфера обмена \nП: CB меню";

Отсутствует

 

№1643316-05-2022 09:17:28

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1702
UA: Firefox 78.0

Re: Custom Buttons

ВВП пишет

Как размеры этих значков рихтануть ?

Как-то так, наверно


categories-box#categories > button.category {
    background-size: 12px !important;
    background-position: 16px 19px !important;
}

Отсутствует

 

№1643416-05-2022 13:16:11

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 258
UA: Firefox 100.0

Re: Custom Buttons

Dumby
categories-box#categories > button.category {
     background-size: 26px !important;
   
}
И button > span.category-name { тоже подрихтовать)
Теперь норм.

Отсутствует

 

№1643517-05-2022 05:15:43

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 671
UA: Firefox 54.0

Re: Custom Buttons

Здравствуйте! Поделитесь версией для Firefox 100, а то кнопки не работают

Отсутствует

 

№1643617-05-2022 06:03:03

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3176
UA: Firefox 100.0

Re: Custom Buttons

vv07
№16402

Отсутствует

 

№1643717-05-2022 06:39:41

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 671
UA: Firefox 84.0

Re: Custom Buttons

voqabuhe пишет

vv07№16402

Пишет, что дополнение не может быть установлено, повреждено

Отсутствует

 

№1643817-05-2022 08:31:59

momo2000
Участник
 
Группа: Members
Зарегистрирован: 03-09-2015
Сообщений: 196
UA: Firefox 100.0

Re: Custom Buttons

Как открыть заданную папку?, нашел старый код, но он не работает
https://forum.mozilla-russia.org/viewtopic.php?pid=345518#p345518

Отсутствует

 

№1643917-05-2022 09:01:46

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1317
UA: Firefox 100.0

Re: Custom Buttons

momo2000 пишет

Как открыть заданную папку?

скрытый текст

Выделить код

Код:

this.onclick =e=> {
   e.button == 0 && runApp();   // ЛКМ
};       
function runApp() {
   var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
   file.initWithPath( getPath() );
   file.launch();
};
function getPath() {
   try { return Services.prefs.getComplexValue(s, Ci.nsIPrefLocalizedString).data; }
   catch(e) { return "F:\\папка"; };
};


Win7

Отсутствует

 

№1644017-05-2022 09:08:05

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3176
UA: Firefox 100.0

Re: Custom Buttons

vv07 пишет

Пишет, что дополнение не может быть установлено, повреждено

Ставишь paxmod?

Отсутствует

 

№1644117-05-2022 13:25:02

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 671
UA: Firefox 84.0

Re: Custom Buttons

voqabuhe пишет

Ставишь paxmod?

Оба пробовал. Не идут почему то

Отсутствует

 

№1644217-05-2022 14:59:49

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3176
UA: Firefox 100.0

Re: Custom Buttons

vv07
"Антиподписячий код" №16320 обновлял?

Отсутствует

 

№1644317-05-2022 15:02:15

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 671
UA: Firefox 84.0

Re: Custom Buttons

voqabuhe
Я не знаю как это делать?

Отсутствует

 

№1644417-05-2022 16:47:37

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1317
UA: Firefox 100.0

Re: Custom Buttons

vv07 пишет

Я не знаю как это делать?

Замените код для отключения проверки... в файле "config.js"  на код по ссылке, который вам дали в предыдущем сообщении.


Win7

Отсутствует

 

№1644517-05-2022 16:52:06

vv07
Участник
 
Группа: Members
Зарегистрирован: 07-11-2007
Сообщений: 671
UA: Firefox 54.0

Re: Custom Buttons

kokoss
Еще бы знать, что менять:(
В файле config, что в папке с программой, вот это

Выделить код

Код:

//
try {(code => {
    var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
    var jsval, evl = true, re = e => Cu.reportError(e), imp = name => {try {
        return Cu.import(`resource://gre/modules/addons/${name}.jsm`, {});
    } catch(ex) {}}
    if ((jsval = imp("AddonSettings"))) {
        jsval.AddonSettings = {ADDON_SIGNING: false, REQUIRE_SIGNING: false, ALLOW_LEGACY_EXTENSIONS: true};
        try {evl = jsval.eval("this") === jsval;} catch(ex) {evl = false;}
    }
    var jsvals = ["XPIProvider", "XPIInstall"].map(imp).filter(i => i);
    jsvals[0].AddonSettings && lockPref("extensions.allow-non-mpc-extensions", true);
    jsvals[0].signaturesNotRequired = true;

    if (evl) return jsvals.forEach(jsval => {try {jsval.eval(code);} catch(ex) {re(ex);}});

    var sl = Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci.mozIJSSubScriptLoader);
    Cu.importGlobalProperties(["URL", "Blob"]); var url = URL.createObjectURL(new Blob([(code)]));
    jsvals.forEach(jsval => {try {sl.loadSubScript(url, jsval);} catch(ex) {re(ex);}});

})(String.raw`((vzss, pckg) => {
    var trueDesc = {enumerable: true, value: true};
    typeof Extension == "function" && Object.defineProperty(Extension.prototype, "experimentsAllowed", trueDesc);
    "AddonInternal" in this && Object.defineProperty(AddonInternal.prototype, "providesUpdatesSecurely", trueDesc);
    this.isDisabledLegacy = () => false;
    if ("XPIDatabase" in this) this.XPIDatabase.isDisabledLegacy = () => false;
    try {SIGNED_TYPES.clear();} catch(ex) {};

    if (!vzss && !pckg) return;

    var re = /\x06\x03U\x04\x03..(\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\}|[a-z0-9-\._]*\@[a-z0-9-\._]+)0\x82\x02"0\r\x06\t/i;
    var getUUID = () => {
        var gen = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
        return (getUUID = () => gen.generateUUID().toString())();
    }
    var getIdFromString = str => {
        var match = str && str.match(re);
        return match ? match[1] : getUUID();
    }
    var getState = arg => ({
        signedState: AddonManager.SIGNEDSTATE_NOT_REQUIRED,
        cert: typeof arg == "object" ? arg : {commonName: arg}
    });
    var checkAddon = addon => {
        if (addon.id || (
            "_installLocation" in addon
                ? addon._installLocation.name == KEY_APP_TEMPORARY
                : addon.location.isTemporary
        ))
            return getState(null);
    }
    var getRoot = () =>
        !AppConstants.MOZ_REQUIRE_SIGNING && Services.prefs.getBoolPref(PREF_XPI_SIGNATURES_DEV_ROOT, false)
            ? Ci.nsIX509CertDB.AddonsStageRoot : Ci.nsIX509CertDB.AddonsPublicRoot;

    if (vzss) {
        var getURI = file => {
            var jsval = Cu.import("resource://gre/modules/addons/XPIProvider.jsm", {});
            return (getURI = file => jsval.getURIForResourceInFile(file, "META-INF/mozilla.rsa"))(file);
        }
        var getIdFromFile = file => {
            var str, is = {close() {}}, sis = {close() {}};
            try {
                is = Services.io.newChannelFromURIWithLoadInfo(getURI(file), null).open();
                sis = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
                sis.init(is);
                str = sis.readBytes(sis.available());
            } catch(ex) {}
            sis.close(); is.close();
            return getIdFromString(str);
        }
        this.verifyZipSignedState = function verifyZipSignedState(aFile, aAddon) {
            var res = checkAddon(aAddon);
            return res ? Promise.resolve(res) : new Promise(resolve => {
                var callback = {openSignedAppFileFinished(rv, zipReader, cert) {
                    zipReader && zipReader.close();
                    resolve(getState(cert || getIdFromFile(aFile)));
                }};
                gCertDB.openSignedAppFileAsync(getRoot(), aFile, callback.wrappedJSObject = callback);
            });
        }
    }

    if (pckg) Package.prototype.verifySignedState = function verifySignedState(addon) {
        var res = checkAddon(addon);
        return res ? Promise.resolve(res) : new Promise(resolve =>
            this.verifySignedStateForRoot(addon, getRoot()).then(({cert}) => {
                if (cert)
                    resolve(getState(cert));
                else
                    this.readBinary("META-INF", "mozilla.rsa").then(
                        buffer => resolve(getState(
                            getIdFromString(String.fromCharCode(...new Uint8Array(buffer)))
                        )),
                        () => resolve(getState(getUUID()))
                    );
            }, Cu.reportError)
        );
    }
})(
    "verifyZipSignedState" in this, typeof Package == "function"
);`)} catch(err) {
    err.message != "Components is not defined" && Components.utils.reportError(err);
}

Отредактировано vv07 (17-05-2022 16:54:50)

Отсутствует

 

№1644617-05-2022 17:32:17

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1317
UA: Firefox 100.0

Re: Custom Buttons

vv07
Это старый код, замените его на тот что по ссылке, под вторым спойлером.

Отредактировано kokoss (17-05-2022 17:35:02)


Win7

Отсутствует

 

№1644721-05-2022 04:47:54

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 259
UA: Firefox 97.0

Re: Custom Buttons

Иногда при запуске открываются ненужные окна/вкладки, появляющиеся из-за какого-то сбоя. Помогает только удаление sessionstore.jsonlz4 при закрытом браузере.
Подскажите код, чтобы при следующем запуске сессия однократно не восстанавливалась. Снятие флажка настроек не помогает: «Открыть предыдущие окна и вкладки»

Например, такой сбой будет, если попробовать печатать фотку с почты, отправленную с Андроида. Такие фото даже в штатном Windows просмотрщике не открываются, пишет: Недостаточно памяти. Помогает только замена профиля цвета, например на Agfa: Swop Standart.

Возвращаясь к скрипту Менеджер сессий (+ мои правки тултипа): эту доработку удобнее в нём сделать, например добавить пункт меню: "Не восстанавливать сессию браузера при следующем запуске".

Отсутствует

 

№1644821-05-2022 13:49:42

ВВП
Участник
 
Группа: Members
Зарегистрирован: 13-03-2021
Сообщений: 258
UA: Firefox 100.0

Re: Custom Buttons

Dobrov
Кнопка "Нет псевдосессиям".

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041D%u0435%u0442%20%u043F%u0441%u0435%u0432%u0434%u043E-%u0441%u0435%u0441%u0441%u0438%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAACNElEQVR42nWTXWiOYRjH78cwX832MlqMxDZy9kaa0hTlI5laUmhqO1CyKLZx5GArdjIHDnyVEyUn42BMmUhZsmWtlYRR1A7mY6YtNPvw+9f/1bu9j6d+3Xf3dd3/5/q6o/CfbzIkI5ZZkAOb4CDcjkJ3O+tv7DNZt0ALDERxIhxGEyG5jO1u2A9rYSFU++Ik7IErMCa/KCaSgpYwtLci5EpgDSyFOb78Au7AIqiwyGGifBknlM9yDM5YIFhE3zj0w1z4BPWIPHYWGULKPQlH4QDMt9B03044O0WIy7NZxAwVEuMoZ+vZn7KYIuuFFZCw0Ag8gOPwJXIEO6DQYt0I6W8SK2ZtgDJ4BqWwwBGq+B9cgrsSkuERbIAsaEZIl4ewKcKVUOv2f4ensBy2ycddrEkJqRvrnGqDhf447SynpDTq4SGcgzp3rUsZSUjFvAebndolaETss4eywJdXwT4NJOcn2Td5YF9rYCWkQl6AQ7AYOuTEhVZsqsllKHFq7ZyPcK66nHfRX6l2qWLvVG2gCIbh/o0w+LwqJCo9Cu81yYi8cbrbWXZ5rj7C9cjhJzzuehLz4Cv8gNUwAd/0zpQ2Yu+4o47l2fZL/v+GDKNG4LQfYnbME1THbsE1xHqnG9OFFM0J2Oqix32jcNGR9WcIIbLR0RTaWSEvgWJ3JhXRALTBTYR6pgghovm5aqGutB+U+1xzNAhPXKdOdS4jNYT0HI7AWxzG01JVJxuh1fTBT3zG4nL+CzymsTl1OvV4AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A/*Initialization%20Code*/%0A%28%28topic%2C%20id%29%20%3D%3E%20%7B%0A%20%20%20%20var%20obs%2C%20getObserver%20%3D%20%28%29%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20for%28var%20o%20of%20Services.obs.enumerateObservers%28topic%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20res%20%3D%20o.wrappedJSObject%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28res%20%26%26%20id%20in%20res%29%20return%20res%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20addDestructor%28reason%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28reason%5B5%5D%20%21%3D%20%22e%22%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20obs%20%3D%20getObserver%28%29%3B%0A%20%20%20%20%20%20%20%20obs%20%26%26%20obs.destroy%28%29%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20%28obs%20%3D%20getObserver%28%29%29%20%7C%7C%20Services.obs.addObserver%28obs%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%5Bid%5D%3A%20true%2C%20__proto__%3A%20null%2C%20destroyed%3A%20false%2C%0A%20%20%20%20%20%20%20%20destroy%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.obs.removeObserver%28this%2C%20topic%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroyed%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20wins%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20Array.from%28Services.wm.getEnumerator%28%22navigator%3Abrowser%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.filter%28win%20%3D%3E%20win.toolbar.visible%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20observe%28cancelQuit%2C%20t%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20data%20%21%3D%20%22restart%22%20%26%26%20%21cancelQuit.data%20%26%26%20this.onQuit%28true%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20handleEvent%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroyed%20%7C%7C%20this.onQuit%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20onQuit%28fromObs%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20%7Bwins%7D%20%3D%20this%2C%20multi%20%3D%20wins.length%20%3E%201%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28multi%29%20return%20fromObs%20%26%26%20this.destroy%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroy%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20%7Btabs%7D%20%3D%20wins%5B0%5D.gBrowser%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28tabs.length%20%3E%201%20%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20es%20%3D%20JSON.parse%28SessionStore.getTabState%28tabs%5B0%5D%29%29.entries%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20es.length%20%3D%3D%201%20%26%26%20wins%5B0%5D.isBlankPageURL%28es%5B0%5D.url%29%20%26%26%20this.erase%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20erase%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.obs.notifyObservers%28null%2C%20%22browser%3Apurge-session-history%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20Cu.import%28%22resource%3A///modules/sessionstore/SessionFile.jsm%22%2C%20%7B%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.SessionFileInternal.write%20%3D%20%28%29%20%3D%3E%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%20topic%2C%20false%29%3B%0A%20%20%20%20addEventListener%28%22DOMWindowClose%22%2C%20obs%29%3B%0A%7D%29%28%22quit-application-requested%22%2C%20%60%24%7B_id%7D%3AquitApplicationRequestedObserver1%60%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№1644922-05-2022 10:58:39

Alex_one
Участник
 
Группа: Members
Зарегистрирован: 27-09-2015
Сообщений: 129
UA: Firefox 91.0

Re: Custom Buttons

Кнопка запуска программы.
Посмотрите плз, где-то ошибка?
Никак не хочет запускаться программа.
[firefox] 91.8.0esr

Код

Выделить код

Код:

startProcess("C:\\Program Files\\Psiphon\\psiphon3.exe",[""]);
 
function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsIFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("Файл не найден", path);  
};

Отсутствует

 

№1645023-05-2022 00:40:10

kokoss
Участник
 
Группа: Members
Зарегистрирован: 15-02-2018
Сообщений: 1317
UA: Firefox 100.0

Re: Custom Buttons

Alex_one
Не знаю как в 91.8.0esr, а в актуальной версии 91.9.1 + CB-0.0.7.0.0.22 работает!
Add, как и в [firefox] 100

Отредактировано kokoss (23-05-2022 00:41:42)


Win7

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]