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

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

№1292629-10-2018 12:16:31

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 600
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
Сообщений: 3639
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
Сообщений: 600
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
Сообщений: 59
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
Сообщений: 55
UA: Chrome 69.0

Re: Custom Buttons

Dumby пишет

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

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

Отсутствует

 

№1293208-11-2018 00:57:01

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 1134
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
Сообщений: 55
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
Сообщений: 1134
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
Сообщений: 58
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
Сообщений: 586
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
Сообщений: 3639
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
Сообщений: 604
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
Сообщений: 392
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
Сообщений: 604
UA: Firefox 63.0

Re: Custom Buttons

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

скрытый текст
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
Сообщений: 392
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
Сообщений: 604
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
Сообщений: 392
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
Сообщений: 604
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
Сообщений: 392
UA: Firefox 63.0

Re: Custom Buttons

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

Отсутствует

 

№1294713-11-2018 18:55:09

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 604
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
Сообщений: 220
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
Сообщений: 604
UA: Firefox 63.0

Re: Custom Buttons

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

Отсутствует

 

№1295015-11-2018 21:14:45

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

Re: Custom Buttons

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

Отсутствует

 

Board footer

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