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

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№1292629-10-2018 12:16:31

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 532
UA: Firefox 63.0

Re: Custom Buttons

В [firefox] 63(может немного раньше) перестал работать код для кнопки:

about:about

Выделить код

Код:

this.tooltipText = "Л = about:config | С = about:support | П = about:about";

this.onclick = function(event) {
    if(event.button == 2) {
// ПКМ
 getBrowser (). selectedTab = getBrowser (). addTab ("about:about");
    }
    else if(event.button == 1) {
// СКМ
 getBrowser (). selectedTab = getBrowser (). addTab ("about:support");
    }
    else if(event.button == 0) {
// ЛКМ
 getBrowser (). selectedTab = getBrowser (). addTab ("about:config");
    }
};


Можно исправить?

Отсутствует

 

№1292729-10-2018 12:37:28

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3219
UA: Firefox 63.0

Re: Custom Buttons

vitalii201, сюда гляньте: https://forum.mozilla-russia.org/viewto … 42#p762542

Попробуйте addTab заменить на addTrustedTab.

типа того:

Выделить код

Код:

getBrowser (). selectedTab = getBrowser (). addTrustedTab ("about:addons")

Отсутствует

 

№1292829-10-2018 12:47:48

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 532
UA: Firefox 63.0

Re: Custom Buttons

Coroner, отлично, большое спасибо!

Отсутствует

 

№1292906-11-2018 20:24:50

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 56.0

Re: Custom Buttons

Я посылаю xmlhttprequest.
Из ответа сервера выделяю нужную строку. Но она содержит html сущности в виде   '   и т. д.
Чтобы декодировать эту строку, я создаю textarea и присваиваю ей innerHTML в виде этой строки. А потом, по идее, если взять textarea.value то это должна быть уже декодированная строка.
Вот мой код

Выделить код

Код:

var txt = document.createElement('textarea'); 
var xmlhttp = new XMLHttpRequest();
  xmlhttp.open('GET', url,  true)
  xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4) {
      if(xmlhttp.status == 200) {
         var str = xmlhttp.responseText.split('xyz')[0].split('abc')[1]; 
         txt.innerHTML = str;
         1_str = txt.value;  // это должна быть декодированная строка
      }  
    }    
  }
       xmlhttp.send(null);

Но строчка txt.innerHTML = str даёт ошибку SyntaxError: An invalid or illegal string was specified
Причём в принципе этот способ декодирования у меня работает. Но только если он не внутри xmlhttprequest.
В чём тут дело?

Отсутствует

 

№1293007-11-2018 00:56:36

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

Re: Custom Buttons

сайт открыт в режиме ReaderMode (about:reader). Нужно сохранить страницу как единый HTML-файл. (UnMHT сохраняет, но мне не нужен MHT-формат…)

P.S. разобрался сам и доработал код Save snapshot to html:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ESave++%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%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*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0413%u043B%u043E%u0431%u0430%u043B%u044C%u043D%u044B%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20-%20%u0440%u0430%u0441%u043F%u043E%u043B%u043E%u0436%u0438%u0442%u044C%20%u0432%20%u043A%u043D%u043E%u043F%u043A%u0435%2C%20%u0440%u0430%u0441%u043F%u043E%u043B%u043E%u0436%u0435%u043D%u043D%u043E%u0439%20%u0432%20%u043D%u0430%u0447%u0430%u043B%u0435%20%u043F%u0430%u043D%u0435%u043B%u0438%2C%20%u043D%u0430%u043F%u0440%u0438%u043C%u0435%u0440%20%u0432%20Compact%20Menu%0Awindow.statusTextField%20%3D%20function%20%28text%2C%20time%29%20%7B%09//%20%u041F%u043E%u043A%u0430%u0437%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u044F%20%u0432%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0442%u0430%u0442%u0443%u0441%u0430%0A%09time%20%3D%20time%20%7C%7C%203000%3B%20//%20%u0430%u0440%u0433%u0443%u043C%u0435%u043D%u0442%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20%u043D%u0435%20%u0443%u043A%u0430%u0437%u0430%u043D%0A%09XULBrowserWindow.statusTextField.label%20%3D%20text%3B%20setTimeout%28%28%29%3D%3E%20XULBrowserWindow.statusTextField.label%20%3D%20%27%27%2Ctime%29%3B%0A%7D%3B%0A%0Awindow.dateout%20%3D%20function%20%28date%29%20%7B%0A%09var%20d%20%3D%20new%20Date%28%29%2C%20z%20%3D%20function%28n%29%7Breturn%20%28n%20%3C%2010%20%3F%20%270%27%20%3A%20%27%27%29%20+%20n%7D%3B%0A%09if%20%28%20date%20%3D%3D%201%20%29%0A%09%09return%20d.toLocaleFormat%28%29%0A%09else%20if%20%28%20date%20%3D%3D%202%20%29%0A%09%09return%20d.toLocaleFormat%28%22%25y-%25m-%25d%22%29%0A%09else%20if%20%28%20date%20%3D%3D%203%20%29%0A%09%09return%20d.toLocaleFormat%28%27%25Y.%25m.%25d%27%29%20+%27_%27+%20d.toLocaleFormat%28%27%25H%27%29%20+%27%u0589%27+%20d.toLocaleFormat%28%27%25M.%25S%27%29%0A%09else%0A%09%09return%20z%28d.getHours%28%29%29%20+%27%u0589%27+%20z%28d.getMinutes%28%29%29%20+%27.%27+%20z%28d.getSeconds%28%29%29%3B%0A%7D%3B%0A%0Awindow.Warning%20%3D%20function%28%20text%2C%20id%2C%20color%2C%20time%20%29%7B%20//%20%u0437%u043D%u0430%u0447%u043E%u043A%20%u0438%u0434%u0435%u043D%u0442%u0438%u0444%u0438%u043A%u0430%u0446%u0438%u0438%20%u0441%u0430%u0439%u0442%u0430%20%u043C%u0438%u0433%u0430%u0435%u0442%u2026%0A%09id%20%3D%20id%20%7C%7C%20%22urlbar%22%3B%20color%20%3D%20color%20%7C%7C%20%22orange%22%3B%20time%20%3D%20time%20%7C%7C%20500%3B%20//%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u043F%u043E-%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%0A%09if%20%28text%29%20window.statusTextField%28text%29%3B%0A%09document.getElementById%28id%29.style.background%20%3D%20color%3B%0A%09setTimeout%28%28%29%3D%3E%20document.getElementById%28id%29.style.background%20%3D%20%22%22%2C%20time%29%3B%0A%7D%3B%0A%0Awindow.sleep%20%3D%20function%28ms%29%20%7B%0A%09ms%20+%3D%20new%20Date%28%29.getTime%28%29%3B%0A%09while%20%28new%20Date%28%29%20%3C%20ms%29%7B%7D%0A%7D%0A%0Awindow.getPlatform%20%3D%20function%20%28update%29%20%7B%20//%20%u043E%u043F%u0440%u0435%u0434%u0435%u043B%u0438%u0442%u044C%20%u0441%u0438%u0441%u0442%u0435%u043C%u0443%2C%20update%20%3D%20true%20%u043F%u0435%u0440%u0435%u043E%u043F%u0440%u0435%u0434%u0435%u043B%u0438%u0442%u044C%0A%09var%20sys%20%3D%20custombuttons.getPrefs%28%22CB.Platform%22%29%3B%0A%09if%20%28%20sys%20%21%3D%3D%20null%20%26%26%20%21update%20%29%20return%20sys%0A%09%09else%20sys%20%3D%20%27windows%27%3B%0Avar%20file%20%3D%20Services.dirsvc.get%28%27CurProcD%27%2C%20Ci.nsIFile%29%3B%0A%09try%20%7B%0A%09%09file.initWithPath%28%27/usr/bin/cat%27%29%3B%0A%09%09if%28file.exists%28%29%29%20sys%20%3D%20%27linux%27%3B%0A%09%7D%20catch%28e%29%20%7B%7D%3B%0A%09custombuttons.setPrefs%28%27CB.Platform%27%2C%20sys%29%3B%20return%20sys%3B%20//%20%u0437%u0430%u043F%u043E%u043C%u043D%u0438%u0442%u044C%20%u0442%u0438%u043F%20%u0441%u0438%u0441%u0442%u0435%u043C%u044B%0A%7D%3B%0A%0Awindow.exec%20%3D%20function%20%28path%2C%20args%20%29%20%7B%20//%20%u0443%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u043B%u043D%u044B%u0439%20%u043F%u0443%u0442%u044C%20%u043A%u043E%u043C%u0430%u043D%u0434%u044B%20Windows%0A%20%09if%20%28%21path%29%20path%20%3D%20%27/usr/bin/nohup%27%3B%20//%20%u0434%u043B%u044F%20Linux%20%u043D%u0443%u0436%u0435%u043D%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%3A%20%u0438%u043C%u044F%20%u043A%u043E%u043C%u0430%u043D%u0434%u044B%2C%20%u0441%u043A%u0440%u0438%u043F%u0442%u0430%0A%09var%20file%20%3D%20Services.dirsvc.get%28%27CurProcD%27%2C%20Ci.nsIFile%29%3B%0A%09file.initWithPath%28path%29%3B%0A%09if%28file.exists%28%29%29%20%7B%0A%09%09var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%09%09process.init%28file%29%3B%0A%09%09process.run%28false%2C%20args%2C%20args.length%29%3B%0A%09%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20//%20%u0421%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20%u043E%u0431%20%u043E%u0448%u0438%u0431%u043A%u0435%0A%7D%3B%0A%0Awindow.beep%20%3D%20function%28%29%20%7B%0A%09if%20%28/linux/.test%28%20window.getPlatform%28%29%29%29%20%7B%20//%20%u0442%u0438%u043F%20%u0441%u0438%u0441%u0442%u0435%u043C%u044B%0A%09%09window.exec%28%27%27%2C%20%5B%27beep%27%5D%20%29%3B%20//%20%u043A%u043E%u043C%u0430%u043D%u0434%u0430%20Linux%0A%09%7D%20else%0A%09%09window.exec%28%27C%3A%5C%5Cwindows%5C%5Csystem32%5C%5Ccmd.exe%27%2C%20%5B%20%27/C%27%2C%20%27echo%27%2C%20String.fromCharCode%287%29%20%5D%20%29%3B%20//%20Windows%20beep%0A%7D%0A%0Awindow.Title%20%3D%20function%20%28type%29%20%7B%20//%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043E%u043A%20%28%u0431%u0435%u0437%20%u043E%u0431%u0440%u0435%u0437%u043A%u0438%2C%20%u0435%u0441%u043B%u0438%20type%20%u043D%u0435%20%u0443%u043A%u0430%u0437%u0430%u043D%29%2C%20%u0434%u043E%u043C%u0435%u043D%20%28type%20%3C0%29%0A%09var%20title%20%3D%20%28content.document.title%20%7C%7C%20gBrowser.mCurrentTab.label%29%3B%0A%09var%20host%20%3D%20%28/about%3A/.test%28gURLBar.value%29%29%20%3F%20//%20ReaderView%20%u0438%u043B%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%20about%3A%u2026%0A%09%09decodeURIComponent%28gURLBar.value%29.replace%28/%5E.*url%3D/%2C%27%27%29.replace%28/%5Ehttps%3F%3A%5C/%5C//%2C%27%27%29.replace%28/%5C/.*/%2C%27%27%29%20%3A%0A%09%09gBrowser.currentURI.host%3B%0A%09if%20%28/%5Efile%3A%5C/%5C//.test%28gBrowser.currentURI.spec%29%29%20host%20%3D%20%27%27%3B%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%20%u043B%u043E%u043A%u0430%u043B%u044C%u043D%u044B%u0439%20%u0444%u0430%u0439%u043B%0A%09if%20%28%20%21type%20%29%20return%20title%3B%20//%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043E%u043A%0A%09if%20%28%20type%20%3E%200%20%29%20return%20title.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%27%20%27%29.replace%28/%5Cs+/g%2C%27%20%27%29.replace%28/%20%20/g%2C%27%20%27%29.substr%280%2C%20type%29.trim%28%29%3B%20//%20%u043E%u0433%u0440%u0430%u043D%u0438%u0447%u0438%u0442%u044C%20%u0434%u043B%u0438%u043D%u0443%20%u0438%u043C%u0435%u043D%u0438%0A%09if%20%28%20type%20%3C%200%20%29%20return%20host.replace%28/%5Ewww%5C./%2C%27%27%29.replace%28/%5Eru%5C./%2C%27%27%29.replace%28/%5Em%5C./%2C%27%27%29.replace%28/%5Eforum%5C./%2C%27%27%29.replace%28/%5Eclub%5C.dns/%2C%27dns%27%29%3B%0A%7D%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%0Awindow.convertFromUnicode%20%3D%20function%28charset%2C%20str%29%20%7B%0A%09var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%09converter.charset%20%3D%20charset%3B%0A%09str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%09return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0Awindow.getPlatform%28true%29%3B%20//%20%u043F%u0435%u0440%u0435%u043E%u043F%u0440%u0435%u0434%u0435%u043B%u0438%u0442%u044C%20%u0442%u0438%u043F%20%u0441%u0438%u0441%u0442%u0435%u043C%u044B%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%5C%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20Save%20snapshot%20to%20html%20%u043E%u0442%2001.12.2017%0Awindow.SaveSnapshot%20%3D%20function%20%28%29%20%7B%0Avar%20resolveURL%20%3D%20function%20%28url%2C%20base%29%20%7B%0A%09try%20%7B%0A%09%09var%20ioService%20%3D%20Components.classes%5B%27@mozilla.org/network/io-service%3B1%27%5D.getService%28Components.interfaces.nsIIOService%29%3B%0A%09%09var%20baseURI%20%3D%20ioService.newURI%28base%2C%20null%2C%20null%29%3B%0A%09%09var%20absURI%20%3D%20ioService.newURI%28url%2C%20null%2C%20baseURI%29%3B%0A%09%09return%20absURI.spec%3B%0A%09%7D%20catch%20%28e%29%20%7B%7D%0A%7D%3B%0Avar%20getSelWin%20%3D%20function%20%28w%29%20%7B%0A%09if%20%28w.getSelection%28%29.toString%28%29%29%20return%20w%3B%0A%09for%20%28var%20i%20%3D%200%2C%20f%2C%20r%3B%20f%20%3D%20w.frames%5Bi%5D%3B%20i++%29%20%7B%0A%09%09try%20%7B%20if%20%28r%20%3D%20getSelWin%28f%29%29%20return%20r%3B%20%7D%20catch%28e%29%20%7B%7D%0A%09%7D%0A%7D%3B%0Avar%20encodeImg%20%3D%20function%20%28src%2C%20obj%29%20%7B%0A%09var%20canvas%2C%20img%2C%20ret%20%3D%20src%3B%0A%09if%20%28/%5Ehttps%3F%3A%5C/%5C//.test%28src%29%29%20%7B%0A%09%09canvas%20%3D%20doc.createElement%28%27canvas%27%29%3B%0A%09%09if%20%28%21obj%20%7C%7C%20obj.nodeName.toLowerCase%28%29%20%21%3D%20%27img%27%29%20%7B%0A%09%09%09img%20%3D%20doc.createElement%28%27img%27%29%3B%0A%09%09%09img.src%20%3D%20src%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09img%20%3D%20obj%3B%0A%09%09%7D%3B%0A%09%09if%20%28img.complete%29%20try%7B%0A%09%09%09canvas.width%20%3D%20img.width%3B%0A%09%09%09canvas.height%20%3D%20img.height%3B%0A%09%09%09canvas.getContext%28%272d%27%29.drawImage%28img%2C%200%2C%200%29%3B%0A%09%09%09ret%20%3D%20canvas.toDataURL%28%28/%5C.jpe%3Fg/i.test%28src%29%20%3F%20%27image/jpeg%27%20%3A%20%27image/png%27%29%29%3B%0A%09%09%7D%20catch%20%28e%29%20%7B%7D%3B%0A%09%09if%20%28img%20%21%3D%20obj%29%20img.src%20%3D%20%27about%3Ablank%27%3B%0A%09%7D%3B%0A%09return%20ret%3B%0A%7D%3B%0Avar%20toSrc%20%3D%20function%20%28obj%29%20%7B%0A%09var%20strToSrc%20%3D%20function%20%28str%29%20%7B%0A%09%09var%20chr%2C%20ret%20%3D%20%27%27%2C%20i%20%3D%200%2C%20meta%20%3D%20%7B%27%5Cb%27%3A%20%27%5C%5Cb%27%2C%20%27%5Ct%27%3A%20%27%5C%5Ct%27%2C%20%27%5Cn%27%3A%20%27%5C%5Cn%27%2C%20%27%5Cf%27%3A%20%27%5C%5Cf%27%2C%20%27%5Cr%27%3A%20%27%5C%5Cr%27%2C%20%27%5Cx22%27%20%3A%20%27%5C%5C%5Cx22%27%2C%20%27%5C%5C%27%3A%20%27%5C%5C%5C%5C%27%7D%3B%0A%09%09while%20%28chr%20%3D%20str.charAt%28i++%29%29%20%7B%0A%09%09%09ret%20+%3D%20meta%5Bchr%5D%20%7C%7C%20chr%3B%0A%09%09%7D%3B%0A%09%09return%20%27%5Cx22%27%20+%20ret%20+%20%27%5Cx22%27%3B%0A%09%7D%2C%0A%09arrToSrc%20%3D%20function%20%28arr%29%20%7B%0A%09%09var%20ret%20%3D%20%5B%5D%3B%0A%09%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i++%29%20%7B%0A%09%09%09ret%5Bi%5D%20%3D%20toSrc%28arr%5Bi%5D%29%20%7C%7C%20%27null%27%3B%0A%09%09%7D%3B%0A%09%09return%20%27%5B%27%20+%20ret.join%28%27%2C%27%29%20+%20%27%5D%27%3B%0A%09%7D%2C%0A%09objToSrc%20%3D%20function%20%28obj%29%20%7B%0A%09%09var%20val%2C%20ret%20%3D%20%5B%5D%3B%0A%09%09for%20%28var%20prop%20in%20obj%29%20%7B%0A%09%09%09if%20%28obj.hasOwnProperty%28prop%29%20%26%26%20%28val%20%3D%20toSrc%28obj%5Bprop%5D%29%29%29%20ret.push%28strToSrc%28prop%29%20+%20%27%3A%20%27%20+%20val%29%3B%0A%09%09%7D%3B%0A%09%09return%20%27%7B%27%20+%20ret.join%28%27%2C%27%29%20+%20%27%7D%27%3B%0A%09%7D%3B%0A%09switch%20%28Object.prototype.toString.call%28obj%29.slice%288%2C%20-1%29%29%20%7B%0A%09%09case%20%27Array%27%3A%20return%20arrToSrc%28obj%29%3B%0A%09%09case%20%27Boolean%27%3A%0A%09%09case%20%27Function%27%3A%0A%09%09case%20%27RegExp%27%3A%20return%20obj.toString%28%29%3B%0A%09%09case%20%27Date%27%3A%20return%20%27new%20Date%28%27%20+%20obj.getTime%28%29%20+%20%27%29%27%3B%0A%09%09case%20%27Math%27%3A%20return%20%27Math%27%3B%0A%09%09case%20%27Number%27%3A%20return%20isFinite%28obj%29%20%3F%20String%28obj%29%20%3A%20%27null%27%3B%0A%09%09case%20%27Object%27%3A%20return%20objToSrc%28obj%29%3B%0A%09%09case%20%27String%27%3A%20return%20strToSrc%28obj%29%3B%0A%09%09default%3A%20return%20obj%20%3F%20%28obj.nodeType%20%3D%3D%201%20%26%26%20obj.id%20%3F%20%27document.getElementById%28%27%20+%20strToSrc%28obj.id%29%20+%20%27%29%27%20%3A%20%27%7B%7D%27%29%20%3A%20%27null%27%3B%0A%09%7D%0A%7D%3B%0Avar%20mainWin%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%0Avar%20selWin%20%3D%20getSelWin%28mainWin%29%2C%20win%20%3D%20selWin%20%7C%7C%20mainWin%2C%20doc%20%3D%20win.document%2C%20loc%20%3D%20win.location%3B%0Avar%20ele%2C%20pEle%2C%20clone%2C%20reUrl%20%3D%20/%28url%5C%28%5Cx22%29%28.+%3F%29%28%5Cx22%5C%29%29/g%3B%0Aif%20%28selWin%29%20%7B%0A%09var%20rng%20%3D%20win.getSelection%28%29.getRangeAt%280%29%3B%0A%09pEle%20%3D%20rng.commonAncestorContainer%3B%0A%09ele%20%3D%20rng.cloneContents%28%29%3B%0A%09%7D%20else%20%7B%0A%09pEle%20%3D%20doc.documentElement%3B%0A%09ele%20%3D%20%28doc.body%20%7C%7C%20doc.getElementsByTagName%28%27body%27%29%5B0%5D%29.cloneNode%28true%29%3B%0A%7D%3B%0Awhile%20%28pEle%29%20%7B%0A%09if%20%28pEle.nodeType%20%3D%3D%201%29%20%7B%0A%09%09clone%20%3D%20pEle.cloneNode%28false%29%3B%0A%09%09clone.appendChild%28ele%29%3B%0A%09%09ele%20%3D%20clone%3B%0A%09%7D%3B%0A%09pEle%20%3D%20pEle.parentNode%0A%7D%3B%0Avar%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0Asel.appendChild%28ele%29%3B%0Afor%20%28var%20el%2C%20all%20%3D%20sel.getElementsByTagName%28%27*%27%29%2C%20i%20%3D%20all.length%3B%20i--%3B%29%20%7B%0A%09el%20%3D%20all%5Bi%5D%3B%0A%09if%20%28el.style%20%26%26%20el.style.backgroundImage%29%20el.style.backgroundImage%20%3D%20el.style.backgroundImage.replace%28reUrl%2C%20function%20%28a%2C%20prev%2C%20url%2C%20next%29%20%7B%0A%09%09if%20%28%21/%5E%5Ba-z%5D+%3A/.test%28url%29%29%20url%20%3D%20resolveURL%28url%2C%20loc.href%29%3B%0A%09%09return%20prev%20+%20encodeImg%28url%29%20+%20next%3B%0A%09%7D%29%3B%0A%09switch%20%28el.nodeName.toLowerCase%28%29%29%20%7B%0A%09%09case%20%27link%27%3A%0A%09%09case%20%27style%27%3A%0A%09%09case%20%27script%27%3A%20el.parentNode.removeChild%28el%29%3B%20break%3B%0A%09%09case%20%27a%27%3A%0A%09%09case%20%27area%27%3A%20if%20%28el.hasAttribute%28%27href%27%29%20%26%26%20el.getAttribute%28%27href%27%29.charAt%280%29%20%21%3D%20%27%23%27%29%20el.href%20%3D%20el.href%3B%20break%3B%0A%09%09case%20%27img%27%3A%0A%09%09case%20%27input%27%3A%20if%20%28el.hasAttribute%28%27src%27%29%29%20el.src%20%3D%20encodeImg%28el.src%2C%20el%29%3B%20break%3B%0A%09%09case%20%27audio%27%3A%0A%09%09case%20%27video%27%3A%0A%09%09case%20%27embed%27%3A%0A%09%09case%20%27frame%27%3A%0A%09%09case%20%27iframe%27%3A%20if%20%28el.hasAttribute%28%27src%27%29%29%20el.src%20%3D%20el.src%3B%20break%3B%0A%09%09case%20%27object%27%3A%20if%20%28el.hasAttribute%28%27data%27%29%29%20el.data%20%3D%20el.data%3B%20break%3B%0A%09%09case%20%27form%27%3A%20if%20%28el.hasAttribute%28%27action%27%29%29%20el.action%20%3D%20el.action%3B%20break%3B%0A%09%7D%0A%7D%3B%0Avar%20head%20%3D%20ele.insertBefore%28doc.createElement%28%27head%27%29%2C%20ele.firstChild%29%3B%0Avar%20meta%20%3D%20doc.createElement%28%27meta%27%29%3B%0Ameta.httpEquiv%20%3D%20%27content-type%27%3B%0Ameta.content%20%3D%20%27text/html%3B%20charset%3Dutf-8%27%3B%0Ahead.appendChild%28meta%29%3B%0Avar%20title%20%3D%20doc.getElementsByTagName%28%27title%27%29%5B0%5D%3B%0Aif%20%28title%29%20head.appendChild%28title.cloneNode%28true%29%29%3B%0Ahead.copyScript%20%3D%20function%20%28unsafeWin%29%20%7B%0A%09if%20%28%27%24%27%20in%20unsafeWin%29%20return%3B%0A%09var%20f%20%3D%20doc.createElement%28%27iframe%27%29%3B%0A%09f.src%20%3D%20%27about%3Ablank%27%3B%0A%09f.setAttribute%28%27style%27%2C%20%27position%3Afixed%3Bleft%3A0%3Btop%3A0%3Bvisibility%3Ahidden%3Bwidth%3A0%3Bheight%3A0%3B%27%29%3B%0A%09doc.documentElement.appendChild%28f%29%3B%0A%09var%20str%2C%20script%20%3D%20doc.createElement%28%27script%27%29%3B%0A%09script.type%20%3D%20%27text/javascript%27%3B%0A%09for%20%28var%20name%20in%20unsafeWin%29%20%7B%0A%09%09if%20%28name%20in%20f.contentWindow%20%7C%7C%20%21/%5E%5Ba-zA-Z_%24%5D%5B0-9a-zA-Z_%24%5D*%24/.test%28name%29%29%20continue%3B%0A%09%09try%20%7B%0A%09%09%09str%20%3D%20toSrc%28unsafeWin%5Bname%5D%29%3B%0A%09%09%09if%20%28%21/%5C%7B%5Cs*%5C%5Bnative%20code%5C%5D%5Cs*%5C%7D/.test%28str%29%29%20%7B%0A%09%09%09%09script.appendChild%28doc.createTextNode%28%27var%20%27%20+%20name%20+%20%27%20%3D%20%27%20+%20str.replace%28/%3C%5C/%28script%3E%29/ig%2C%20%27%3C%5C%5C/%241%27%29%20+%20%27%3B%5Cn%27%29%29%3B%0A%09%09%09%7D%0A%09%09%7D%20catch%20%28e%29%20%7B%7D%3B%0A%09%7D%3B%0A%09f.parentNode.removeChild%28f%29%3B%0A%09if%20%28script.childNodes.length%29%20this.nextSibling.appendChild%28script%29%3B%0A%7D%3B%0Ahead.copyScript%28win.wrappedJSObject%20%7C%7C%20win%29%3B%0Ahead.copyStyle%20%3D%20function%20%28s%29%20%7B%0A%09if%20%28%21s%29%20return%3B%0A%09var%20style%20%3D%20doc.createElement%28%27style%27%29%3B%0A%09style.type%20%3D%20%27text/css%27%3B%0A%09if%20%28s.media%20%26%26%20s.media.mediaText%29%20style.media%20%3D%20s.media.mediaText%3B%0A%09try%20%7B%0A%09%09for%20%28var%20i%20%3D%200%2C%20rule%3B%20rule%20%3D%20s.cssRules%5Bi%5D%3B%20i++%29%20%7B%0A%09%09%09if%20%28rule.type%20%21%3D%203%29%20%7B%0A%09%09%09%09if%28%28%21rule.selectorText%20%7C%7C%20rule.selectorText.indexOf%28%27%3A%27%29%20%21%3D%20-1%29%20%7C%7C%20%28%21sel.querySelector%20%7C%7C%20sel.querySelector%28rule.selectorText%29%29%29%20%7B%0A%09%09%09%09%09var%20css%20%3D%20%21rule.cssText%20%3F%20%27%27%20%3A%20rule.cssText.replace%28reUrl%2C%20function%20%28a%2C%20prev%2C%20url%2C%20next%29%20%7B%0A%09%09%09%09%09%09if%20%28%21/%5E%5Ba-z%5D+%3A/.test%28url%29%29%20url%20%3D%20resolveURL%28url%2C%20s.href%20%7C%7C%20loc.href%29%3B%0A%09%09%09%09%09%09if%28rule.type%20%3D%3D%201%20%26%26%20rule.style%20%26%26%20rule.style.backgroundImage%29%20url%20%3D%20encodeImg%28url%29%3B%0A%09%09%09%09%09%09return%20prev%20+%20url%20+%20next%3B%0A%09%09%09%09%09%7D%29%3B%0A%09%09%09%09%09style.appendChild%28doc.createTextNode%28css%20+%20%27%5Cn%27%29%29%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09this.copyStyle%28rule.styleSheet%29%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%20catch%28e%29%20%7B%0A%09%09if%20%28s.ownerNode%29%20style%20%3D%20s.ownerNode.cloneNode%28false%29%3B%0A%09%7D%3B%0A%09this.appendChild%28style%29%3B%0A%7D%3B%0Avar%20sheets%20%3D%20doc.styleSheets%3B%0Afor%20%28var%20j%20%3D%200%3B%20j%20%3C%20sheets.length%3B%20j++%29%20head.copyStyle%28sheets%5Bj%5D%29%3B%0Ahead.appendChild%28doc.createTextNode%28%27%5Cn%27%29%29%3B%0Avar%20doctype%20%3D%20%27%27%2C%20dt%20%3D%20doc.doctype%3B%0Aif%20%28dt%20%26%26%20dt.name%29%20%7B%0A%09doctype%20+%3D%20%27%3C%21DOCTYPE%20%27%20+%20dt.name%3B%0A%09if%20%28dt.publicId%29%20doctype%20+%3D%20%27%20PUBLIC%20%5Cx22%27%20+%20dt.publicId%20+%20%27%5Cx22%27%3B%0A%09if%20%28dt.systemId%29%20doctype%20+%3D%20%27%20%5Cx22%27%20+%20dt.systemId%20+%20%27%5Cx22%27%3B%0A%09doctype%20+%3D%20%27%3E%5Cn%27%3B%0A%7D%3B%0A%0A%09var%20title%20%3D%20selWin%20%3F%20win.getSelection%28%29.toString%28%29%20%3A%20%28title%20%26%26%20title.text%20%3F%20decodeURIComponent%28title.text%29%20%3A%20loc.pathname.split%28%27/%27%29.pop%28%29%29%3B%0A%09var%20fileName%20%3D%20title.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%27%20%27%29.replace%28/%5Cs+/g%2C%27%20%27%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%27%27%29.replace%28/%20%20/g%2C%27%20%27%29.replace%28/pic%20/%2C%27%27%29.slice%280%2C100%29%20+%27_%27+%20window.dateout%283%29%3B%0Aif%28%21/%5C.html%3F%24/.test%28fileName%29%29fileName%20+%3D%20%27.html%27%3B%0A%0A%09var%20savedir%20%3D%20cbu.getPrefs%28%27browser.download.dir%27%29%20+%27/_Web/%27%3B%0A%09if%20%28/%5Etvzvezda%7C%5Ezvezdaweekly%7C%5Eweacom/.test%28window.Title%28-1%29%29%29%20//%20%u0442%u0435%u043C%u044B%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%20%u043F%u043E%20%u043F%u0430%u043F%u043A%u0430%u043C%0A%09%09%09savedir%20%3D%20savedir%20+%20%27_%u041D%u043E%u0432%u043E%u0441%u0442%u0438/%u2605%u202F%27+%20window.Title%28-1%29%20//%20%u043F%u043E%u0441%u043B%u0435%20%u0437%u0432%u0451%u0437%u0434%u043E%u0447%u043A%u0438%20%u043D%u0435%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u044B%u0439%20%u043F%u0440%u043E%u0431%u0435%u043B%0A%09else%20savedir%20%3D%20savedir%20+%20%27%u2605%u202F%27+%20decodeURIComponent%28window.Title%28-1%29%29%3B%0A%0Avar%20text%20%3D%20doctype%20+%20sel.innerHTML%20+%20%27%5Cn%3Ca%20href%3D%27%20+%20%28loc.protocol%20%21%3D%20%27data%3A%27%20%3F%20loc.href%20%3A%20%27data%3Auri%27%29%20+%20%27%3E%3Csmall%3E%3Cblockquote%3EThis%20document%20saved%20url...%20%27+%20window.dateout%281%29%20+%27%3C/blockquote%3E%3C/small%3E%3C/a%3E%27%3B%0Avar%20uc%20%3D%20Components.classes%5B%27@mozilla.org/intl/scriptableunicodeconverter%27%5D.createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0A%09uc.charset%20%3D%20%27utf-8%27%3B%0A%09text%20%3D%20uc.ConvertFromUnicode%28text%29%3B%0Avar%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%09file.initWithPath%28savedir%29%3B%0A%09if%20%28%20%21file.exists%28%29%20%7C%7C%20%21file.isDirectory%28%29%20%29%20file.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%u2026%0A%09file.append%28fileName%29%3B%0A%09cbu.writeFile%28file.path%2C%20text%29%3B%0Awindow.statusTextField%20%28%27%uD83D%uDDAB%20%27+%20title.slice%280%2C150%29%2C%207000%29%3B%0A%09window.Warning%28%29%3B%0A%09window.beep%28%29%3B%0A%7D%3B%0A%0Awindow.SaveSnapshot%28%29%3B%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

Отредактировано Dobrov (07-11-2018 03:00:36)

Отсутствует

 

№1293107-11-2018 20:52:18

usalex
Участник
 
Группа: Members
Зарегистрирован: 17-05-2016
Сообщений: 43
UA: Chrome 69.0

Re: Custom Buttons

Dumby пишет:

Я, например, прямо в Notepad++ omni.ja подправил, даже задумываться
ни о чём не надо, поскольку количество символов не меняется.

Это обязательное условие, что при правке omni.ja нужно следить за тем, чтоб общее количество символов осталось, как в оригинале?
А если так не получается и количество символов будет другим, то к каким последствиям это приведет?

Отсутствует

 

№1293208-11-2018 00:57:01

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

Re: Custom Buttons

rbfyec пишет:

я создаю textarea

Создать textarea надо просить у HTML документа.

usalex пишет:

Это обязательное условие, что при правке omni.ja нужно следить за тем, чтоб общее количество символов осталось, как в оригинале?
А если так не получается и количество символов будет другим, то к каким последствиям это приведет?

Если править omni.ja прямо в Notepad++, то да, обязательное.
Причём, общее количество символов не просто во всём 18МБ-ном файле,
но в пределах отдельной зип-сущности. То есть нельзя в одном вложенном
файле уменьшить, а в другом столько же добавить.

Иначе говоря, это подходит для каких-то простых операций.
Если есть затруднения, да и вообще, — лучше перепаковать
архиватором заново, безо всяких ограничений. И не забываем
вычищать папку startupCache в локальном каталоге профиля.

А последствия.. Ну к чему может привести битый файл?
Появление крашрепортера, схлопывание программы на старте,
иная какая-нибудь прочая неприятность. Ничего хорошего.

Отсутствует

 

№1293308-11-2018 01:51:52

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 56.0

Re: Custom Buttons

Dumby пишет:

rbfyec пишет:

я создаю textarea

Создать textarea надо просить у HTML документа.

Ну я сделал content.document.createElement ('textarea') - так декодируется.

А в каких случаях нужно обращаться именно к HTML документу? Если я скажем хочу просто создать див или спан и вставить его в страницу - как надо сделать?

Отредактировано rbfyec (08-11-2018 14:57:04)

Отсутствует

 

№1293408-11-2018 02:41:56

usalex
Участник
 
Группа: Members
Зарегистрирован: 17-05-2016
Сообщений: 43
UA: Chrome 69.0

Re: Custom Buttons

Dumby
Большое спасибо за хорошее разъяснение.
Я сначала открываю omni.ja в винраре, а уж оттуда открываю файлы в акелпаде.
Значит, насколько понял, могу не заботиться о количестве символов.
А метод сжатия, установленный в винраре имеет значение? Я ставлю ZIP без сжатия - это нормально или лучше все же сжимать omni.ja ?

Отредактировано usalex (08-11-2018 02:55:27)

Отсутствует

 

№1293508-11-2018 16:15:51

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

Re: Custom Buttons

rbfyec пишет:

А что именно в моём коде неправильно

Ну, например, «1_str = txt.value;»

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

Дэвид Флэнаган пишет:

В JavaScript идентификаторы выступают
в качестве названий переменных и функций, а также меток некоторых циклов.
Правила формирования допустимых идентификаторов совпадают с правилами
Java и многих других языков программирования. Первым символом должна быть
буква, символ подчеркивания (_) или знак доллара ($). Последующие символы
могут быть любой буквой, цифрой, символом подчеркивания или знаком доллара.
(Цифра не может быть первым символом, т. к. тогда интерпретатору труднее
отличать идентификаторы от чисел.)


rbfyec пишет:

что там надо изменить?

Что надо изменить это тебе виднее.
Я просто предложил для создания textarea использовать HTML документ.
Не знаю как проще объяснить. Может запусти пример, посмотри на alert.

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

Выделить код

Код:

var str = "a b'c";

var test = func => {
    var doc, arr = [
        "CODE:\t" + func.toString().slice(6)
    ];
    try {
        doc = func();
        arr.push("DOC: \t" + doc);
    } catch(ex) {
        arr.push("ERR: \t" + ex);
    }
    if (doc) {
        try {
            var textarea = doc.createElement("textarea");
            textarea.innerHTML = str;
            var result = textarea.value;

            arr.push("RES: \t" + result);
        } catch(ex) {
            arr.push("ERR: \t" + ex);
        }
    }
    return arr.join("\n");
}
var funcs = [
    () => document,
    () => new DOMParser().parseFromString("", "text/html"),
    () => Services.appShell.hiddenDOMWindow.document,
    () => document.implementation.createHTMLDocument("")
];
alert(funcs.map(test).join("\n\n"));


usalex пишет:

Я ставлю ZIP без сжатия - это нормально или лучше все же сжимать

Оригинальный omni.ja ведь запакован без сжатия, значит нормально.
Сжатый тоже, наверно, будет работать, но зачем от добра добра искать.

Отсутствует

 

№1293611-11-2018 21:50:21

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 54
UA: Firefox 59.0

Re: Custom Buttons

Coroner пишет:

Yeesha пишет:

Browser.AddWebTab() должно работать.

Не-а. :(

Dumby пишет:

Можно попробовать сделать как здесь,

И «Обратно совместимое», и «Обратно несовместимое» — работают.

Ох, но кнопок где это встречается много...
Буду потихоньку переделывать.
Спасибо :beer:

P.S. Ещё не работает «рестарт». Мне он не нужен, просто проверял что работает, а что нет.
Видимо и правда изгадили всё подряд.

подобной кнопке все заработало... Но, не получается запустить ПКМ, собственно с самим меню

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

Выделить код

Код:

// Настройка функций кликов мыши ................................
this.onclick =e=> {
   if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTrustedTab("about:blank");  
     
   if ( e.button == 1 ) { 
        // запомнить текст из буфера обмена и скопировать текст на странице
        var clip = gClipboard.read();
        window.content.focus();
        goDoCommand("cmd_copy");            

        gBrowser.selectedTab = gBrowser.addTrustedTab('about:blank?filter=' + gClipboard.read()); 
                   
        clip &&  gClipboard.write(clip); // вернуть текст в буфер обмена
        }
          
   if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
        e.preventDefault();  
        menu.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
        }        
};
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

 
// Создать меню для кнопки ................................
var array = [
   [ 'about:about', 'about:about' ],
   [ 'about:plugins', 'about:plugins' ],
   [ 'about:telemetry', 'about:telemetry' ],
   [ 'about:newtab', 'about:newtab' ],
   [ 'about:preferences', 'about:preferences' ],
   [ 'about:cache', 'about:cache' ],
   [ 'about:home', 'about:home' ],   
   [ 'about:sessionrestore', 'about:sessionrestore' ],
   [ 'about:permissions', 'about:permissions' ],
   [ 'about:support', 'about:support' ],
   [ 'about:memory', 'about:memory' ],
   [ 'bookmarksPanel', 'chrome://browser/content/bookmarks/bookmarksPanel.xul' ]
            ];
var menu = self.appendChild(document.createElement("menupopup"));
array.forEach(m=> {
   var mItem = menu.appendChild(document.createElement("menuitem"));
   mItem.setAttribute("label", m[0]);  
   mItem.onclick =()=> gBrowser.selectedTab = gBrowser.addTrustedTab(m[1]); 
});
menu.setAttribute("onclick", "event.stopPropagation()");


// Подсказка кнопки ................................
this.tooltipText = "Л: Открыть 'about:config'\nС: Открыть 'about:config' с настройкой ( выделенной или из буфера )\nП: Показать все about:";   

Отсутствует

 

№1293712-11-2018 11:00:33

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 567
UA: Firefox 58.0

Re: Custom Buttons

Привет всем.
Давно не интересовался СВ - сижу пока на FF58.
Может кто-нибудь подведет итог: можно ли запустить СВ на FF63 и что нужно для этого сделать.
И какие кнопки еще работают на 63 или в идеале выложит ссылку на HTML файл с сохраненными кнопками.
А то в теме уже столько вариантов СВ и кнопок и файлов config-prefs.js - config.js, что я уже запутался.

Отсутствует

 

№1293812-11-2018 11:12:41

Coroner
Участник
 
Группа: Members
Зарегистрирован: 29-10-2012
Сообщений: 3219
UA: Firefox 63.0

Re: Custom Buttons

Ultima2m пишет:

Может кто-нибудь подведет итог: можно ли запустить СВ на FF63 и что нужно для этого сделать.

Сделать всё как тут сказано: https://forum.mozilla-russia.org/viewto … 07#p762507

Ultima2m пишет:

И какие кнопки еще работают на 63 или в идеале выложит ссылку на HTML файл с сохраненными кнопками.

Вряд ли все проверены. У большинства конкретный набор же.
Выложить бы можно, да только у меня они все под меня любимого и заточены. :(
Если что-то конкретное интересует — попробую подсказать.

Отсутствует

 

№1293912-11-2018 13:50:54

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 448
UA: Firefox 63.0

Re: Custom Buttons

Ultima2m
У меня вариант, предложенный Coroner, не сработал. Правил omni.ja https://forum.mozilla-russia.org/viewtopic.php?pid=761214#p761214

Отсутствует

 

№1294012-11-2018 22:04:52

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 226
UA: Firefox 63.0

Re: Custom Buttons

xrun1
Давай свой omni.ja -  СВ встанет и кнопки почти все заработают, а самое крутое расширение упадёт(Long Left Click)
https://vitaliyvstyle.github.io/extensions

Отредактировано drage2 (12-11-2018 22:05:36)

Отсутствует

 

№1294112-11-2018 23:05:36

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 448
UA: Firefox 63.0

Re: Custom Buttons

drage2
У меня и так все ссылки и закладки открываются в новой вкладке без всяких танцев с бубном расширений, только настройки prefs.js. Исключения есть, например главная страница яндекса или результаты поиска google, но и там могу ПКМ потянуть ссылку (Foxy Gestures).

скрытый текст
https://i.imgur.com/4P3zGCo.png

Что считать "крутым расширением"? "Каждому свое", как было написано на воротах Бухенвальда.:/

У меня вариант, предложенный Coroner, не сработал.

После обновления с 59 на 60 CB с вариантом config.js отвалился. И никакие версии CB или конфига проблему не решили. Win10 x64 1803, [firefox] x64 установка штатная в папку c:\Program Files\

Отредактировано xrun1 (13-11-2018 00:02:33)

Отсутствует

 

№1294213-11-2018 10:37:56

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 226
UA: Firefox 63.0

Re: Custom Buttons

xrun1 пишет:

У меня и так все ссылки и закладки открываются в новой вкладке

А история тоже в новой? :angry:

xrun1 пишет:

config.js отвалился.

Omni.ja править надо! Наше дело предложить....

Отсутствует

 

№1294313-11-2018 11:13:09

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 448
UA: Firefox 63.0

Re: Custom Buttons

drage2 пишет:

А история тоже в новой?

Нет. Но я историей не пользуюсь, хотя хранится года за 3...

drage2 пишет:

Omni.ja править надо!

Для меня без вариантов.

:offtopic:
Стоял [firefox] 32, но после очередного обновления оказался 64 (случайно заметил). Видимо, в Mozilla решили: раз система 64, то и [firefox] 64. Причём всё так и осталось в папке c:\Program Files (x86)\. После этого я снёс[firefox], вычистил реестр и установил уже 64 в правильную папку. Может, вариант с config.js не работает из-за разрядности... не знаю.

Отсутствует

 

№1294413-11-2018 12:42:51

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 226
UA: Firefox 63.0

Re: Custom Buttons

xrun1
https://www.upload.ee/files/9185100/___ … _.rar.html
Для 63.0 - разрядность не имеет значения.CB.xpi - на всякий случай(если своя не катит, то сначала свою удалить)
Да, обновления не будет никогда, а то упадёт все.

Отсутствует

 

№1294513-11-2018 16:28:22

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 448
UA: Firefox 63.0

Re: Custom Buttons

drage2
Спасибо, посмотрел. С config.js испробовал такие, список ниже под спойлером (после _мой комментарий). Не сложилось. Сейчас использую последний в списке.

скрытый текст
custombuttons@xsms.org.xpi    124 208    25.01.17
custom_buttons-0.0.5.8.9-fixed4-signed.xpi    129 873    10.03.17
custom_buttons-0.0.5.8.9-fixed6-signed.xpi    129 850    17.10.17
custom_buttons-0.0.5.8.9-fixed7.1_для_58.xpi    120 430    26.01.18
custom_buttons-0.0.5.8.9-fixed7pre.xpi    120 222    06.11.17
custom_buttons-0.0.5.8.9-fixed8_для59_и_выше.xpi    120 587    19.03.18
custom_buttons-0.0.5.8.9-fixed8-signed_61+.xpi    131 013    12.05.18
custom_buttons-0.0.5.8.9-fixed8_61+.xpi    120 587    12.05.18
custom_buttons-0.0.5.9.0.2-fx.xpi    173 309    31.08.18
custom_buttons-0.0.5.9.0.3-fx.xpi    174 669    05.09.18
custom_buttons-0.0.5.9.0.4-fx.xpi    174 993    23.10.18
Размер в байтах

Что касается omni.ja, то reporting, telemetry, updater отключаю в pref.js. А maintenance_service и crashreporter у меня не сработают, так как файлы crashreporter.exe и maintenanceservice.exe ( + maintenanceservice_installer.exe) сразу удаляю https://forum.mozilla-russia.org/viewtopic.php?pid=763242#p763242

Отредактировано xrun1 (13-11-2018 16:43:04)

Отсутствует

 

№1294613-11-2018 18:29:44

drage2
Участник
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 226
UA: Firefox 63.0

Re: Custom Buttons

xrun1
Ну, да, всю эту хрень я выключил в в самом omni.ja  и webrts - тоже.Короче, встало или нет?

Отсутствует

 

№1294713-11-2018 18:55:09

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 448
UA: Firefox 63.0

Re: Custom Buttons

drage2
Стоит custom_buttons-0.0.5.9.0.4-fx.xpi с правленым omni.ja №12939

Отсутствует

 

№1294813-11-2018 21:20:02

func4ptch4
Участник
 
Группа: Members
Зарегистрирован: 03-05-2018
Сообщений: 49
UA: Firefox 62.0

Re: Custom Buttons

xrun1 https://forum.mozilla-russia.org/viewto … 95#p760895 это вроде рабочий config.js 60+
Upd: странно но у меня работает на [firefox] 63...

Отредактировано func4ptch4 (14-11-2018 19:47:43)

Отсутствует

 

№1294914-11-2018 00:16:25

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 448
UA: Firefox 63.0

Re: Custom Buttons

func4ptch4
Спасибо, но и этот тоже у меня не сработал тогда. Я за темой слежу, все обновления от Dumby пробовал. Да ладно, пока работает вариант omni.ja, а что будет дальше в 65-й - ещё дожить надо.:)
P.S. В принципе, я почти готов пользоваться [firefox] без кнопок, но это будет менее комфортно лично для меня.

Отсутствует

 

№12950Вчера 21:14:45

usalex
Участник
 
Группа: Members
Зарегистрирован: 17-05-2016
Сообщений: 43
UA: Chrome 69.0

Re: Custom Buttons

А толку от этих новых конфигов, если на новых билдах фаерфокса все равно большинство кнопок не работает?
Пока исправят кнопки, выйдет новый ff и опять всё отвалится. Мартышкин труд, блин.

Отсутствует

 

Board footer

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