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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№1037619-07-2016 10:54:57

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

Ultima2m пишет

Выделяю текст, жму кнопку - балаболка включается и сразу закрывается, не успев мяукнуть.

А в текстовом документе "Text To Editor.txt" на рабочем столе текст записался?
Параметры "-rmq" q = закрывать балаболку после прочтения текста, параметр q - уберите и посмотрите, какой в программе текст открылся, а то может его там нет вовсе.
У меня на windows 7 х32 все исправно работает.

Отсутствует

 

№1037719-07-2016 11:40:20

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

Re: Custom Buttons

fokanik пишет

А в текстовом документе "Text To Editor.txt" на рабочем столе текст записался?

Текст в файле есть, но в балаболке пусто.
windows 7 х64

Отредактировано Ultima2m (19-07-2016 11:41:25)

Отсутствует

 

№1037819-07-2016 12:55:56

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

Ultima2m пишет

Текст в файле есть, но в балаболке пусто. windows 7 х64

Ну тогда может оставить все как было и еще раз попробовать:

Выделить код

Код:

custombuttonsUtils.writeFile( file.path, convertFromUnicode("UTF-8", sel) ); //"UTF-16"

Но у меня вот так, как раз и не работает :sick:

Отсутствует

 

№1037919-07-2016 14:40:40

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

Re: Custom Buttons

fokanik пишет

Ну тогда может оставить

Нет, текст не передается в балаболку.
Может пути к файлу указать явно,  с возможностью поместить его в папке с балаболкой?

Отсутствует

 

№1038019-07-2016 18:04:26

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

Ultima2m пишет

Может пути к файлу указать явно,  с возможностью поместить его в папке с балаболкой?

Я не знаю, тут такое дело:
-если созданный текстовой документ в кодировке utf8 или windows-1251 бросить на ярлык программы - программа его откроет без проблем (без кракозябр).
-через cmd - тоже все работает хорошо
-а через CB - почему-то "через раз" работает :sick:

Причем вот какая штука, сейчас проверил еще:
-текстовой файл созданный в стандартном блокноте windows в utf8 балаболка открывает без крякозябр.
-а записанный в utf8 через CB текстовой файл - балаболка открывает с крякозябрами. :whiteflag:

turbot пишет

Вот только PotPlayer не дает добавить несколько файлов одновременно в плейлист.

Dumby пишет

Не, я тоже не знаю что PotPlayer от меня хочет.

А может в этом все дело - неправильный utf8? :)

201bdacfcb66.gif

Отредактировано fokanik (19-07-2016 20:32:54)

Отсутствует

 

№1038120-07-2016 14:13:36

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

Dumby
Нужна твоя рецензия. На предмет пригодности кнопки к выкладыванию в готовые. :D

Выделить код

Код:

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%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0432%u0430%u0442%u0435%u043B%u044C%20%u043A%u043E%u0440%u043E%u0442%u043A%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACFAAAAhQHi7P/BAAABNmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarY6xSsNQFEDPi6LiUCsEcXB4kygotupgxqQtRRCs1SHJ1qShSmkSXl7VfoSjWwcXd7/AyVFwUPwC/0Bx6uAQIYODCJ7p3MPlcsGo2HWnYZRhEGvVbjrS9Xw5+8QMUwDQCbPUbrUOAOIkjvjB5ysC4HnTrjsN/sZ8mCoNTIDtbpSFICpA/0KnGsQYMIN+qkHcAaY6addAPAClXu4vQCnI/Q0oKdfzQXwAZs/1fDDmADPIfQUwdXSpAWpJOlJnvVMtq5ZlSbubBJE8HmU6GmRyPw4TlSaqo6MukP8HwGK+2G46cq1qWXvr/DOu58vc3o8QgFh6LFpBOFTn3yqMnd/n4sZ4GQ5vYXpStN0ruNmAheuirVahvAX34y/Axk/96FpPYgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAABj0lEQVR42pSTz0qWYRDFX0gQRRAUwmrRxkVQK28haNM23OguEG+gM3SmfssiEHQrdAHfIiEvwQhvwIX9AQ2yXYi1icx824wfb19fZovZPMM5c+aceZq2bZuLlMwdmZcyezIPZabbtm0uBI7kqUwrsx3JuswXmQ8yo/8DftZRcyOSHzIL/5L9RKaNZGVI75XMxnnguwVeHdK7JvNNZuk8gp7Mvsy4zKLMVL3PRLIr81lm4m+TezKHkezLbEZyIjMrMyOzK3MoM/dHCpH9nfdrelt1X+bmIPg3go7bqyV7M7JPcBzJqcynLrhP0AGv1BqLMic1+VhmS2ZZZrLIR/oEdWGDOU9FMluyTwt8OZI1maNIDmQeRzLW1HluDzmgKzJvSvakzFrHkxelcrmp214fSOJqJG/PDItkXOaoDO7JPJD5GMlOUx/jq8ytAl+Xed91W2ZE5kDmeST3ZN6Vkq0mkun6GD9lXst8ryOZG1jpUSS3a622Epo/a47KLMhsRLIkMzHEk7Eyc6dSmY/k0q8BAFXPYK4TxOuUAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%28%28cntxtMenu%2C%20elm%2C%20mItem%29%20%3D%3E%20%7B%0A%20%20mItem.id%20%3D%20%22cb-unshorten-url%22%3B%0A%20%20mItem.setAttribute%28%22label%22%2C%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%29%3B%0A%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20mItem.setAttribute%28%22image%22%2C%20self.image%29%3B%0A%20%20elm.parentNode.insertBefore%28mItem%2C%20elm%29%3B%0A%0A%20%20const%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%0A%20%20var%20url%2C%20link%2C%20isUnshortened%2C%0A%20%20%20%20%20%20shortenerServices%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22tinyurl.com%22%2C%0A%20%20%20%20%20%20%20%20%22po.st%22%2C%0A%20%20%20%20%20%20%20%20%22img.ly%22%2C%0A%20%20%20%20%20%20%20%20%22bit.ly%22%2C%0A%20%20%20%20%20%20%20%20%22goo.gl%22%2C%0A%20%20%20%20%20%20%20%20%22youtu.be%22%2C%0A%20%20%20%20%20%20%20%20%22t.co%22%2C%0A%20%20%20%20%20%20%20%20%22db.tt%22%2C%0A%20%20%20%20%20%20%20%20%22u.to%22%0A%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20options%20%3D%20%7B%0A%20%20%20%20%20%20%20%20replaceShortenedLinks%3A%20true%2C%0A%20%20%20%20%20%20%20%20showAlert%3A%20true%2C%0A%20%20%20%20%20%20%20%20clickAlertToOpen%3A%20true%2C%0A%20%20%20%20%20%20%20%20showOnShortenedTextLinks%3A%20true%2C%0A%20%20%20%20%20%20%20%20promptDialogForTextLinks%3A%20true%2C%0A%20%20%20%20%20%20%20%20copyToClipboard%3A%20true%0A%20%20%20%20%20%20%7D%3B%0A%0A%20%20function%20isShortenedURL%28aURL%29%20%7B%0A%20%20%20%20var%20uri%3B%0A%20%20%20%20try%20%7Buri%20%3D%20makeURI%28aURL%29%7D%20catch%28e%29%20%7B%7D%3B%0A%0A%20%20%20%20if%20%28uri%20%26%26%20shortenerServices.indexOf%28uri.host%29%20%21%3D%3D%20-1%29%0A%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%7D%3B%0A%0A%20%20function%20xhr%28aURL%2C%20cb%29%20%7B%0A%20%20%20%20if%20%28%21aURL%29%20%7B%0A%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u041D%u0435%u043F%u0440%u0430%u0432%u0438%u043B%u044C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%21%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20//%20%20%20%20%20window.setCursor%28%22progress%22%29%3B%0A%20%20%20%20var%20alertListener%20%3D%20%7B%0A%20%20%20%20%20%20observe%3A%20function%28aSubject%2C%20aTopic%2C%20aData%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28aTopic%20%21%3D%20%27alertclickcallback%27%29%20return%3B%0A%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28xhr.responseURL%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20let%20xhr%20%3D%20Cc%5B%22@mozilla.org/xmlextras/xmlhttprequest%3B1%22%5D.createInstance%28Ci.nsIXMLHttpRequest%29%3B%0A%20%20%20%20let%20handler%20%3D%20ev%20%3D%3E%20%7B%0A%20%20%20%20%20%20evf%28m%20%3D%3E%20xhr.removeEventListener%28m%2C%20handler%2C%20%211%29%29%3B%0A%20%20%20%20%20%20switch%20%28ev.type%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27load%27%3A%0A%20%20%20%20%20%20%20%20%20%20if%20%28xhr.status%20%3D%3D%20200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20cb%28xhr.responseURL%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.showAlert%20%26%26%20options.clickAlertToOpen%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%21%5Cn%u041D%u0430%u0436%u043C%u0438%u0442%u0435%2C%20%u0447%u0442%u043E%u0431%u044B%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3A%5Cn%27%20+%20xhr.responseURL%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20true%2C%20null%2C%20alertListener%2C%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%3A%5Cn%27%20+%20xhr.responseURL%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20%20%20%20%20%20%20%20%20%20%20%20%20window.setCursor%28%22auto%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u041E%u0448%u0438%u0431%u043A%u0430%20%u043F%u0440%u0438%20%u043F%u043E%u043F%u044B%u0442%u043A%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%3A%20%27%20+%20xhr.statusText%20+%20%27%20%5B%27%20+%20ev.type%20+%20%27%3A%27%20+%20xhr.status%20+%20%27%5D%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20//%20%20%20%20%20%20%20%20%20%20%20window.setCursor%28%22auto%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20let%20evf%20%3D%20f%20%3D%3E%20%5B%27load%27%2C%20%27error%27%2C%20%27abort%27%5D.forEach%28f%29%3B%0A%20%20%20%20evf%28m%20%3D%3E%20xhr.addEventListener%28m%2C%20handler%2C%20false%29%29%3B%0A%0A%20%20%20%20xhr.mozBackgroundRequest%20%3D%20true%3B%0A%20%20%20%20xhr.open%28%27GET%27%2C%20aURL%2C%20true%29%3B%0A%20%20%20%20xhr.channel.loadFlags%20%7C%3D%20Ci.nsIRequest.LOAD_ANONYMOUS%20%7C%20Ci.nsIRequest.LOAD_BYPASS_CACHE%20%7C%20Ci.nsIRequest.INHIBIT_CACHING%3B%0A%20%20%20%20xhr.setRequestHeader%28%22User-Agent%22%2C%20%22Mozilla/5.0%20%28compatible%3B%20Googlebot/2.1%3B%20+http%3A//www.google.com/bot.html%29%22%2C%20false%29%3B%0A%20%20%20%20xhr.setRequestHeader%28%22Accept%22%2C%20%22text/html%2Ctext/xml%22%2C%20false%29%3B%0A%20%20%20%20xhr.send%28null%29%3B%0A%20%20%7D%3B%0A%0A%20%20function%20shouldDisplay%28%29%20%7B%0A%20%20%20%20if%20%28gContextMenu.onLink%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20gContextMenu.getLinkURL%28%29%3B%0A%20%20%20%20%20%20link%20%3D%20gContextMenu.link%3B%0A%20%20%20%20%20%20isUnshortened%20%3D%20link.getAttribute%28%22cb-short-url%22%29%3B%0A%20%20%20%20%20%20mItem.label%20%3D%20isUnshortened%20%3F%20%22%u0421%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%20%3A%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28gContextMenu.onPlainTextLink%20%26%26%20%21gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20url%20%3D%20gContextMenu.getLinkURL%28%29%3B%0A%0A%20%20%20%20if%20%28gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20url%20%3D%20document.commandDispatcher.focusedWindow.content.document.getSelection%28%29.toString%28%29.trim%28%29%3B%0A%0A%20%20%20%20mItem.hidden%20%3D%20%21%28%28gContextMenu.onLink%20%7C%7C%20%28gContextMenu.onPlainTextLink%20%7C%7C%20gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20options.showOnShortenedTextLinks%29%20%26%26%20isShortenedURL%28url%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20gContextMenu.onLink%20%26%26%20isUnshortened%29%3B%0A%20%20%7D%3B%0A%0A%20%20mItem.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20if%20%28gContextMenu.onLink%29%20%7B%0A%20%20%20%20%20%20if%20%28%21isUnshortened%29%20%7B%0A%20%20%20%20%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21reURL%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21options.replaceShortenedLinks%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20link.setAttribute%28%22cb-short-url%22%2C%20link.href%29%3B%0A%20%20%20%20%20%20%20%20%20%20link.setAttribute%28%22href%22%2C%20reURL%29%3B%0A%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20link.setAttribute%28%22href%22%2C%20isUnshortened%29%3B%0A%20%20%20%20%20%20%20%20link.removeAttribute%28%22cb-short-url%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21reURL%29%20return%3B%0A%20%20%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21options.promptDialogForTextLinks%29%20return%3B%0A%20%20%20%20%20%20%20%20var%20input%20%3D%20%7Bvalue%3A%20reURL%7D%0A%20%20%20%20%20%20%20%20var%20prompt%20%3D%20Services.prompt.prompt%28null%2C%20options.copyToClipboard%20%3F%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0430%21%22%20%3A%20%22%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%21%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u041E%u0442%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20input%2C%20null%2C%20%7Bvalue%3A%20false%7D%29%3B%0A%20%20%20%20%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28input.value%29%3B%0A%20%20%20%20%20%20%7D%29%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20cntxtMenu.addEventListener%28%22popupshowing%22%2C%20shouldDisplay%2C%20false%29%3B%0A%20%20addDestructor%28%28%29%3D%3E%20%7B%0A%20%20%20%20cntxtMenu.removeEventListener%28%22popupshowing%22%2C%20shouldDisplay%2C%20false%29%3B%0A%20%20%20%20cntxtMenu.removeChild%28mItem%29%3B%0A%20%20%7D%29%3B%0A%7D%29%28document.getElementById%28%22contentAreaContextMenu%22%29%2C%20document.getElementById%28%22context-sep-open%22%29%2C%20document.createElement%28%22menuitem%22%29%29%3B%0A%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

Отредактировано turbot (20-07-2016 16:40:37)

Отсутствует

 

№1038220-07-2016 16:16:03

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

Re: Custom Buttons

turbot
Код кнопки в твоём посте  совместно с кнопкой CB code 2 link валят [nightly] на раз. :)

Отсутствует

 

№1038320-07-2016 16:22:16

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

voqabuhe
У меня не валят. Причина, наверное, в svg-иконке. Вы там, в кнопке, ничего не правили?

Отсутствует

 

№1038420-07-2016 16:37:17

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

Re: Custom Buttons

turbot пишет

Вы там, в кнопке, ничего не правили?

Нет нигде ничего не правил. А ты правильно меня понял, я имел ввиду [nightly] падает, если навести курсор на код в посте?

Отсутствует

 

№1038520-07-2016 16:44:44

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

voqabuhe
Нет. Так тоже порядок. Вообще, ночнушка последний месяц очень нестабильна. У меня три непофикшенных бага, от которых падает. Вот, например, из-за последнего - половину стилей поотключать пришлось.

Поменял в кнопке иконку на png. Так не падает?

Добавлено 20-07-2016 16:46:26

svg-шная, если кому надо

Выделить код

Код:

data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KCjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0iQ2FwYV8xIgogICB4PSIwcHgiCiAgIHk9IjBweCIKICAgd2lkdGg9IjQyNS40NjZweCIKICAgaGVpZ2h0PSI0MjUuNDY3cHgiCiAgIHZpZXdCb3g9IjAgMCA0MjUuNDY2IDQyNS40NjciCiAgIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQyNS40NjYgNDI1LjQ2NzsiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTEgcjEzNzI1IgogICBzb2RpcG9kaTpkb2NuYW1lPSI2OTEwNC5zdmciPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTQ3Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNDUiIC8+PHNvZGlwb2RpOm5hbWVkdmlldwogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxIgogICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiCiAgICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgICAgZ3VpZGV0b2xlcmFuY2U9IjEwIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIgogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxMzY2IgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjcxNSIKICAgICBpZD0ibmFtZWR2aWV3NDMiCiAgICAgc2hvd2dyaWQ9ImZhbHNlIgogICAgIGlua3NjYXBlOnpvb209IjAuNTU0Njg0NiIKICAgICBpbmtzY2FwZTpjeD0iMjEwLjkzMDE4IgogICAgIGlua3NjYXBlOmN5PSItMy42MDU2NTI2IgogICAgIGlua3NjYXBlOndpbmRvdy14PSItNSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTUiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJDYXBhXzEiIC8+PGcKICAgICBpZD0iZzMiCiAgICAgc3R5bGU9ImZpbGw6Izc5N2M4MDtmaWxsLW9wYWNpdHk6MSI+PGcKICAgICAgIGlkPSJnNSIKICAgICAgIHN0eWxlPSJmaWxsOiM3OTdjODA7ZmlsbC1vcGFjaXR5OjEiPjxnCiAgICAgICAgIGlkPSJnNyIKICAgICAgICAgc3R5bGU9ImZpbGw6Izc5N2M4MDtmaWxsLW9wYWNpdHk6MSI+PHBhdGgKICAgICAgICAgICBkPSJNMzE4LjE1LDIzMC4xOTVsNzcuOTM0LTc3LjkzN2MzMS44OTQtMzEuODkyLDMxLjg5NC04My43ODItMC4wMDQtMTE1LjY3NGwtMTIuNjYtMTIuNjYgICAgIGMtMzEuODkzLTMxLjg5Ni04My43OC0zMS44OTYtMTE1LjY3NC0wLjAwNGwtNzcuOTM3LDc3LjkzNGMtMTcuNTg4LDE3LjU4OC0yNS40NTcsNDEuMjY0LTIzLjY0Niw2NC4zMTEgICAgIGMtMjMuMDQ1LTEuODEzLTQ2LjcyMiw2LjA1Ni02NC4zMDgsMjMuNjQ3TDIzLjkyLDI2Ny43NDhjLTMxLjg5NCwzMS44ODktMzEuODk0LDgzLjc3OSwwLDExNS42NzRsMTIuNjY0LDEyLjY2MiAgICAgYzMxLjg5MywzMS44OTMsODMuNzgzLDMxLjg5MywxMTUuNjc0LDBsNzcuOTM1LTc3LjkzNmMxNy41OTItMTcuNTksMjUuNDU5LTQxLjI2NiwyMy42NDctNjQuMzA5ICAgICBDMjc2Ljg4NCwyNTUuNjU0LDMwMC41NiwyNDcuNzgzLDMxOC4xNSwyMzAuMTk1eiBNMjAyLjY1MywyOTAuNjA1bC03Ny45MzYsNzcuOTM4Yy0xNi43MDUsMTYuNzAzLTQzLjg4OSwxNi43MDMtNjAuNTksMCAgICAgbC0xMi42NjYtMTIuNjY2Yy0xNi43MDUtMTYuNzAxLTE2LjcwMy00My44ODUsMC02MC41OTRsNzcuOTM2LTc3LjkzMmMxNC4xNC0xNC4xNDEsMzUuNzc5LTE2LjMwNiw1Mi4yMjYtNi41MTZsLTMyLjMwMiwzMi4zMDcgICAgIGMtNy42MDYsNy42MDQtNy42MDYsMTkuOTM4LDAsMjcuNTQxYzcuNjA1LDcuNjA3LDE5LjkzNyw3LjYwNywyNy41NDEsMGwzMi4zMDYtMzIuMzAzICAgICBDMjE4Ljk1OSwyNTQuODI4LDIxNi43OTUsMjc2LjQ2OSwyMDIuNjUzLDI5MC42MDV6IE0yMzguMzgyLDIwOS4xNjlsMzIuMjk5LTMyLjMwNmM3LjYwOC03LjYwMiw3LjYwOC0xOS45MzUsMC0yNy41MzggICAgIGMtNy42MDQtNy42MS0xOS45MzYtNy42MS0yNy41NDEtMC4wMDRsLTMyLjMwMywzMi4zMDNjLTkuNzkxLTE2LjQ0Ni03LjYyNy0zOC4wODcsNi41MTQtNTIuMjI2bDc3LjkzNS03Ny45MzUgICAgIGMxNi43MDctMTYuNzA3LDQzLjg5LTE2LjcwNyw2MC41OTQsMGwxMi42NjQsMTIuNjY0YzE2LjcwNSwxNi43MDUsMTYuNzA1LDQzLjg4NiwwLDYwLjU5MWwtNzcuOTM2LDc3LjkzNyAgICAgQzI3Ni40NjgsMjE2Ljc5NywyNTQuODI4LDIxOC45NTksMjM4LjM4MiwyMDkuMTY5eiIKICAgICAgICAgICBpZD0icGF0aDkiCiAgICAgICAgICAgc3R5bGU9ImZpbGw6Izc5N2M4MDtmaWxsLW9wYWNpdHk6MSIgLz48cGF0aAogICAgICAgICAgIGQ9Ik0zNDMuNDY2LDI2MS40NjVjLTQ1LjI4NywwLTgyLDM2LjcxMy04Miw4MnMzNi43MTMsODIsODIsODJjNDUuMjg2LDAsODItMzYuNzEzLDgyLTgyUzM4OC43NTMsMjYxLjQ2NSwzNDMuNDY2LDI2MS40NjV6ICAgICAgTTM3Mi41MDUsMzMzLjU2NGwtNTYuMDQ2LDU2LjEwNGMtMC4yMzksMC4yMzgtMC41MzYsMC40MS0wLjg2MiwwLjQ5NmwtMjIuMzE1LDUuODVjLTAuNjQ5LDAuMTY4LTEuMzQ3LTAuMDItMS44MjItMC40OTQgICAgIGMtMC40NzctMC40NzktMC42NjYtMS4xNzItMC40OTYtMS44MjRsNS44MjYtMjIuMzE4YzAuMDg0LTAuMzI2LDAuMjU2LTAuNjI3LDAuNDk0LTAuODYzbDU2LjA0Ny01Ni4xMDQgICAgIGMwLjc0Mi0wLjc0MiwxLjk0NS0wLjc0NCwyLjY4OC0wLjAwMmw0LjU0OCw0LjU0MWMwLjczOSwwLjc0LDAuNzQxLDEuOTQzLDAsMi42ODhsLTM3LjQzMywzNy40NzFsNC43MDksNC43MDNsMzcuNDM1LTM3LjQ3MSAgICAgYzAuNzM5LTAuNzQyLDEuOTQtMC43NDIsMi42ODItMC4wMDJsNC41NSw0LjU0MUMzNzMuMjUsMzMxLjYxNywzNzMuMjUsMzMyLjgyMiwzNzIuNTA1LDMzMy41NjR6IE0zOTUuNDcyLDMxMC41NzRsLTE3LDE3LjAxOCAgICAgYy0wLjczOSwwLjc0NC0xLjk0MiwwLjc0NC0yLjY4NSwwLjAwMmwtMTYuNDg5LTE2LjQ3NWMtMC43NDQtMC43NC0wLjc0NC0xLjk0My0wLjAwMi0yLjY4OGwxNy0xNy4wMiAgICAgYzAuNzQxLTAuNzQsMS45NDQtMC43NCwyLjY4OC0wLjAwMmwxNi40ODcsMTYuNDc3QzM5Ni4yMTYsMzA4LjYyOSwzOTYuMjE2LDMwOS44MzIsMzk1LjQ3MiwzMTAuNTc0eiIKICAgICAgICAgICBpZD0icGF0aDExIgogICAgICAgICAgIHN0eWxlPSJmaWxsOiM3OTdjODA7ZmlsbC1vcGFjaXR5OjEiIC8+PC9nPjwvZz48L2c+PGcKICAgICBpZD0iZzEzIiAvPjxnCiAgICAgaWQ9ImcxNSIgLz48ZwogICAgIGlkPSJnMTciIC8+PGcKICAgICBpZD0iZzE5IiAvPjxnCiAgICAgaWQ9ImcyMSIgLz48ZwogICAgIGlkPSJnMjMiIC8+PGcKICAgICBpZD0iZzI1IiAvPjxnCiAgICAgaWQ9ImcyNyIgLz48ZwogICAgIGlkPSJnMjkiIC8+PGcKICAgICBpZD0iZzMxIiAvPjxnCiAgICAgaWQ9ImczMyIgLz48ZwogICAgIGlkPSJnMzUiIC8+PGcKICAgICBpZD0iZzM3IiAvPjxnCiAgICAgaWQ9ImczOSIgLz48ZwogICAgIGlkPSJnNDEiIC8+PC9zdmc+

Отредактировано turbot (20-07-2016 16:46:26)

Отсутствует

 

№1038620-07-2016 16:55:14

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

Re: Custom Buttons

turbot пишет

Поменял в кнопке иконку на png. Так не падает?

Ага, так всё нормально, спасибо.

Отсутствует

 

№1038720-07-2016 18:34:38

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 50.0

Re: Custom Buttons

turbot
Много хлама в SVG и зачем такой огромный размер width="425.466px" height="425.467px"?
Как то так должно с вашей иконкой

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

Выделить код

Код:

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="16" width="16">
    <path d="M 12.4,16 C 10.1,15.5 9.04,12.8 10.5,11 12.3,8.73 16,10 16,12.9 16,14.8 14.2,16.3 12.4,16 Z M 11.6,14.8 11.9,14.7 13,13.6 C 14,12.5 14,12.5 13.9,12.3 13.8,12.2 13.7,12.2 13,13 12.3,13.6 12.3,13.7 12.2,13.5 12.2,13.5 12.4,13.3 12.9,12.8 13.6,12.1 13.6,12 13.5,11.9 13.3,11.8 13.3,11.8 12.2,12.9 L 11.1,14 11.1,14.3 C 10.9,14.9 10.9,14.9 11.6,14.8 Z M 14.6,12 C 14.9,11.6 14.9,11.6 14.6,11.3 14.2,10.9 14.2,10.9 13.8,11.3 13.4,11.6 13.4,11.6 13.8,12 14.2,12.4 14.2,12.4 14.6,12 Z M 2.81,15.7 C 1.68,15.4 0.403,14.2 0.097,13 -0.103,12.3 0.025,11.4 0.437,10.7 0.632,10.4 3.75,7.15 4.22,6.85 4.71,6.48 5.23,6.29 5.87,6.25 L 6.25,6.25 6.25,5.87 C 6.29,5.23 6.48,4.71 6.85,4.22 7.08,3.84 10.4,0.61 10.6,0.456 12.2,-0.471 14.1,0.088 15.3,1.86 16,2.87 15.9,4.33 15.2,5.35 14.9,5.68 11.7,8.88 11.5,9.04 11,9.34 10.5,9.52 9.9,9.56 L 9.56,9.56 9.56,9.75 C 9.56,10.2 9.41,10.9 9.15,11.3 8.92,11.7 5.72,14.9 5.27,15.2 4.52,15.7 3.63,15.9 2.81,15.7 Z M 3.88,14.3 C 4.33,14.2 4.4,14.1 6.14,12.4 7.91,10.6 7.94,10.6 8.06,10.1 8.09,9.86 8.09,9.52 7.98,9.26 7.87,8.92 7.91,8.92 7.19,9.64 6.78,10 6.48,10.3 6.4,10.3 5.84,10.6 5.23,9.98 5.46,9.37 5.5,9.34 5.8,9 6.14,8.62 6.85,7.91 6.85,7.91 6.51,7.79 6.1,7.64 5.5,7.72 5.12,7.98 4.71,8.24 1.71,11.3 1.6,11.6 1.4,12 1.43,12.6 1.69,13.1 1.86,13.4 2.54,14 2.83,14.2 3.21,14.3 3.49,14.4 3.88,14.3 Z M 10.2,8.02 C 10.6,7.94 10.7,7.87 12.4,6.14 14.2,4.29 14.2,4.33 14.3,3.8 14.4,3.12 14,2.38 13.2,1.78 12.8,1.45 12.1,1.37 11.6,1.6 11.3,1.72 8.17,4.78 7.94,5.16 7.72,5.5 7.64,6.1 7.79,6.51 7.91,6.89 7.91,6.89 8.62,6.14 9,5.8 9.34,5.5 9.37,5.46 9.98,5.23 10.6,5.84 10.3,6.4 10.3,6.48 10,6.78 9.64,7.19 8.92,7.91 8.92,7.91 9.3,8.02 9.6,8.09 9.9,8.09 10.2,8.02 Z" style="fill:#787b7f" />
</svg>

Отсутствует

 

№1038820-07-2016 18:45:32

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

Vitaliy V.
Я ж готовые таскаю. :) С flaticons. Меня, с векторной графикой, максимум, на что хватает, это слегка в Inkscape подправить. А размер, вроде, у фф'шных иконок svg'шных такой же, потому и не менял.

Отсутствует

 

№1038920-07-2016 18:48:09

Vitaliy V.
Участник
 
Группа: Members
Зарегистрирован: 19-09-2014
Сообщений: 2186
UA: Firefox 50.0

Re: Custom Buttons

turbot пишет

А размер, вроде, у фф'шных иконок svg'шных такой же

Да не там разный размер

Отсутствует

 

№1039021-07-2016 15:37:29

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

Re: Custom Buttons

fokanik пишет

записанный в utf8 через CB текстовой файл - балаболка открывает с крякозябрами

скрытый текст
Похоже, что балаболке нужен файл с BOM. Попробуй

Выделить код

Код:

var bom = String.fromCharCode.call(null, 239, 187, 191);
custombuttonsUtils.writeFile(file.path, bom + convertFromUnicode("UTF-8", sel));

А turbot, вроде, просто озадачился вопросом, мол
сможет ли браузер собрать для PotPlayer'а командную строку вида
"урл1" "урл2" "урл3" /add

Так вот, думаю что не сможет. Но если добавить в конец
каждого урла пробел, то браузер соберёт командную строку вида
"урл1 " "урл2 " "урл3 " /add

А уже PotPlayer, наверно, сам обрежет эти пробелы. Проверь.

turbot пишет

Нужна твоя рецензия. На предмет пригодности кнопки к выкладыванию в готовые.

Не буду я давать никакую рецензию, тем более на такой предмет.
А пообсуждать кнопку можно.

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

switch (ev.type) {
        case 'load':
          if (xhr.status == 200) {

А если не 200 OK, то что, ничего не делать?

Ну типа если responseURL такой же как и aURL, то значит, наверно,
либо ссылка кривая, либо сервис скукоживания воротит нос от клиента, либо ещё что-нибудь.
Стоит ли уведомить ли об этом?

А если responseURL отличается от aURL, то значит, наверно,
сервис скукоживания добросовестно вернул раскукоженную ссылку,
но уже по раскукоженной ссылке 404 NOT FOUND, или 403 Forbidden, или ещё что-нибудь.
То есть, возможность раскукоживания есть, так раскукоживать или нет?

xhr.open('GET', aURL, true);

Любопытство: а ты пробовал 'HEAD'-запрос, и если да, то почему отказался?

options.showAlert && options.clickAlertToOpen
              ? alertsService.showAlertNotification(self.image, self.label,
                                                    'Ссылка раскукожена!\nНажмите, чтобы открыть в новой вкладке:\n' + xhr.responseURL,
                                                    true, null, alertListener, "")
              : alertsService.showAlertNotification(self.image, self.label,
                                                    'Ссылка раскукожена:\n' + xhr.responseURL,
                                                    false, "", null, "");

Поскольку приоритет оператора && выше, чем у оператора ?:
то AlertNotification будет показан при любых настройках.
Это так задумано или просто типа скобки потерялись?

Отсутствует

 

№1039121-07-2016 16:51:23

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

Dumby пишет

А пообсуждать кнопку можно.

Ну, я это и имел в виду. :) Спасибо.

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

Любопытство: а ты пробовал 'HEAD'-запрос, и если да, то почему отказался?

Забыл поменять. Я сначала пытался из гризманковского скрипта переделать, где как-раз он используется, но моя самодеятельность не взлетела и потому скопипастил почти целиком пример использования xmlhttprequest с MDN. А про if (xhr.status == 200) - тут уж я начудил. break, случайно, за условие вынес. Так ведь нормально будет:

Выделить код

Код:

let handler = ev => {
      evf(m => xhr.removeEventListener(m, handler, !1));
      var reURL = null;
      switch (ev.type) {
        case 'load':
          if (xhr.status == 200 || xhr.responseURL != aURL) {
            reURL = xhr.responseURL;
            cb(reURL);
            options.showAlert && (options.clickAlertToOpen
                                  ? alertsService.showAlertNotification(self.image, self.label,
                                                                        'Ссылка раскукожена!\nНажмите, чтобы открыть в новой вкладке:\n' + reURL,
                                                                        true, null, alertListener, "")
                                  : alertsService.showAlertNotification(self.image, self.label,
                                                                        'Ссылка раскукожена:\n' + reURL,
                                                                        false, "", null, ""));
            break;
          }

        default:
          cb(reURL);
          options.showAlert && alertsService.showAlertNotification(self.image, self.label,
                                                                   'Ошибка при попытке получить ссылку: ' + xhr.statusText + ' [' + ev.type + ':' + xhr.status + ']',
                                                                   false, "", null, "");
          break;
      }
    };

? А то нет такой ссылки, чтоб тыком проверить.

Это так задумано или просто типа скобки потерялись?

Ни то, ни то. Не задумано, но про скобки не сообразил, а не забыл. :)

Отредактировано turbot (21-07-2016 18:44:37)

Отсутствует

 

№1039221-07-2016 22:32:02

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.40

Re: Custom Buttons

Ultima2m пишет

Текст в файле есть, но в балаболке пусто.
windows 7 х64

Dumby пишет

Похоже, что балаболке нужен файл с BOM. Попробуй
var bom = String.fromCharCode.call(null, 239, 187, 191);
custombuttonsUtils.writeFile(file.path, bom + convertFromUnicode("UTF-8", sel));

Проверил, на win7x32 - работает.
Ultima2m, а как на win7x64 - будет работать, проверьте пожалуйста:

Выделить код

Код:

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%3EBalabolka%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bmoz-icon%3A//file%3A//C%3A%5CPortableApps%5CPortableApps%5CBalabolka%5Cbalabolka.exe%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%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u0441%u043E%u0437%u0434%u0430%u0441%u0442%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0439%20%u0444%u0430%u0439%u043B%20%u043D%u0430%20%u0440%u0430%u0431%u043E%u0447%u0435%u043C%20%u0441%u0442%u043E%u043B%u0435%2C%20%0A%20%20%20%u0437%u0430%u043F%u0438%u0448%u0435%u0442%20%u0432%20%u0444%u0430%u0439%u043B%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%20%u0444%u0430%u0439%u043B%20%u0432%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%20*/%0A%0Afunction%20textToEditor%28%29%20%7B%0A%0A%20%20%20var%20sel%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u0444%u0438%u043B%u044C%u0442%u0440%20....%0A%20%20%20if%20%28%20%21sel%20%29%20%7B%0A%20%20%20%20%20%20%20%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20%22Text%20To%20Editor%22%2C%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20var%20file%20%3D%20Services.dirsvc.get%28%27Desk%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20file.append%28%22Text%20To%20Editor.txt%22%29%3B%0A%20%20%20var%20bom%20%3D%20String.fromCharCode.call%28null%2C%20239%2C%20187%2C%20191%29%3B%0A%20%20%20custombuttonsUtils.writeFile%28file.path%2C%20bom%20+%20convertFromUnicode%28%22UTF-8%22%2C%20sel%29%29%3B%0A%20%20%20var%20list%20%3D%20file.path%3B%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20file.initWithPath%28%22C%3A%5C%5CPortableApps%5C%5CPortableApps%5C%5CBalabolka%5C%5Cbalabolka.exe%22%29%3B%0A%20%20%20var%20process%20%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5B%22-rm%22%2C%20list%5D%2C%202%29%3B%20%20%20%20%0A%20%20%20%0A%7D%3B%0AtextToEditor%28%29%3B%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%0A%20%20%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20.......................................................*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20%20%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29%3B%0A%20%20%20%20%20var%20anchor%20%3D%20%28selection.anchorNode%20%21%3D%3D%20null%29%3F%20selection.anchorNode%3A%20false%3B%0A%0A%20%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%27PRE%27%20....%0A%20%20%20%20%20if%20%28%20anchor%20%26%26%20anchor.parentNode.tagName%20%3D%3D%20%27PRE%27%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20selection.focusNode%3B%0A%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20selection.anchorOffset%3B%0A%20%20%20%20%20%20%20%20%20%20var%20endPos%20%3D%20selection.focusOffset%3B%0A%20%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20node.data.substring%28startPos%2C%20endPos%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20%20%20%20if%20%28%20selection.toString%28%29.length%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20//%20%u0438%u0441%u043F%u0440%u0430%u0432%u043B%u044F%u0435%u043C%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%u0443%20%u0441%20%u043F%u0435%u0440%u0435%u043D%u043E%u0441%u043E%u043C%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043D%u043E%u0432%u0443%u044E%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u0432%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u043C%20win%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%u0435%20....%0A%20%20%20%20%20if%20%28%20selection.toString%28%29.length%20%21%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selection.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selection.replace%28/%5Cu000A/g%2C%20%22%5Cu000D%5Cu000A%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selection.replace%28/%5Cu000D%5Cu000D%5Cu000A/g%2C%20%22%5Cu000D%5Cu000A%22%29%3B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%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%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Добавлено 21-07-2016 22:55:12

Dumby пишет

А уже PotPlayer, наверно, сам обрежет эти пробелы. Проверь.

Выделить код

Код:

var mas = "https://www.youtube.com/watch?v=dUybgTRI1SE ";
   var mas2 = "https://www.youtube.com/watch?v=Ad1Dl-DV8kI ";
   var mas3 = "https://www.youtube.com/playlist?list=PLVhl7-zCOVC0FCkM4eEfRtdcp7Ai23abd ";
   process.run(false,[mas, mas2, mas3, "/add"],4);

Да, ссылки с пробелами открываются пачками :iron:

Отредактировано fokanik (21-07-2016 22:55:12)

Отсутствует

 

№1039322-07-2016 00:07:09

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 47.0

Re: Custom Buttons

Dumby пишет
Выделить код

Код:

var bom = String.fromCharCode.call(null, 239, 187, 191); custombuttonsUtils.writeFile(file.path, bom + convertFromUnicode("UTF-8", sel));

На правах развлечения:

Выделить код

Код:

String.fromCharCode.call(null, 239, 187, 191) == String.fromCharCode(239, 187, 191);
Выделить код

Код:

var sel = "проверка @ test";
var bom = String.fromCharCode.call(null, 239, 187, 191);
bom + convertFromUnicode("UTF-8", sel) == convertFromUnicode("UTF-8", "\ufeff" + sel);

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1039422-07-2016 05:04:46

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

Re: Custom Buttons

fokanik пишет

Ultima2m, а как на win7x64 - будет работать, проверьте пожалуйста:

Перепробовал все варианты. Не читает.
Файл создается с текстом. Открывается в балаболке, но текст не передается.
Если открыть этот же файл вручную, то текст в балаболке появляется.
То ли у меня какая-то проблема, то ли надо еще кому-то проверить.

Отсутствует

 

№1039522-07-2016 13:10:20

Hamzat
Участник
 
Группа: Members
Зарегистрирован: 30-03-2015
Сообщений: 326
UA: Chrome 51.0

Re: Custom Buttons

есть кнопка для вода логина и пароля от прокси? Или может кто скажет как управлять всплывающими окнами?


iMacros скрипты на заказ!

Отсутствует

 

№1039622-07-2016 16:30:57

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

Re: Custom Buttons

Infocatcher пишет

На правах развлечения:

О, круто как всегда! Большое спасибо :beer:.

turbot пишет

А то нет такой ссылки, чтоб тыком проверить.

Ну, можно найти. Или сочинить. nsIXMLHttpRequest random ...
Вот ещё ситуация: если выделить скукоженную ссылку (как текстовую),
которая внутри другой ссылки, то раскукоживает не как текстовую,
а прямо в саму ссылку, что несколько странно. about links like http://goo.gl/l6MS

Отсутствует

 

№1039722-07-2016 17:30:40

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

Dumby

сочинить

Что-то не сообразил. :) Вроде, как надо работает. Ну, то есть, я не думаю, что надо проверять еще и статус конечной страницы.

а прямо в саму ссылку

Ага, спасибо. Поправил.

Еще вопросик: а нет способа получить атрибут стиля со свойством important, ну или определить его наличие? Ну, то есть, типа element.style.getProperty("color")? Или только весь атрибут нужно брать и его как-то парсить?

Это я какую-никакую индикацию прогресса пытаюсь прикрутить. С курсором как-то не очень выходит, потому решил цветом ссылки сделать. Но вопрос в том как вернуть оригинальное значение, если оно было с important.

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

Выделить код

Код:

((cntxtMenu, elm, mItem) => {
  mItem.id = "cb-unshorten-url";
  mItem.setAttribute("label", "Раскукожить ссылку");
  mItem.setAttribute("class", "menuitem-iconic");
  mItem.setAttribute("image", self.image);
  elm.parentNode.insertBefore(mItem, elm);

  const alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);

  var url, link, isUnshortened,
      shortenerServices = [
        "tinyurl.com",
        "po.st",
        "img.ly",
        "bit.ly",
        "goo.gl",
        "youtu.be",
        "t.co",
        "db.tt",
        "u.to"
      ],
      options = {
        replaceShortenedLinks: true,
        showAlert: true,
        clickAlertToOpen: true,
        showOnShortenedTextLinks: true,
        promptDialogForTextLinks: true,
        copyToClipboard: true,
        changeColorForUnshortenedLinks: true,
        changeColorBackAfterTimeout: true,
        unshortenedLinksColor: "lightgreen"
      };

  function isShortenedURL(aURL) {
    var uri;
    try {uri = makeURI(aURL)} catch(e) {};

    if (uri && shortenerServices.indexOf(uri.host) !== -1)
      return true;
    else
      return false;
  };

  function xhr(aURL, cb) {
    if (!aURL) {
      options.showAlert && alertsService.showAlertNotification(self.image, self.label,
                                                               'Неправильная ссылка!', false, "", null, "");
      return;
    }

    var alertListener = {
      observe: function(aSubject, aTopic, aData) {
        if (aTopic != 'alertclickcallback') return;
        gBrowser.selectedTab = gBrowser.addTab(xhr.responseURL);
      }
    }

    let xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest);
    let handler = ev => {
      evf(m => xhr.removeEventListener(m, handler, !1));
      var reURL = null;
      switch (ev.type) {
        case 'load':
          if (xhr.status == 200 || xhr.responseURL != aURL) {
            reURL = xhr.responseURL;
            cb(reURL);
            options.showAlert && (options.clickAlertToOpen
                                  ? alertsService.showAlertNotification(self.image, self.label,
                                                                        'Ссылка раскукожена!\nНажмите, чтобы открыть в новой вкладке:\n' + reURL,
                                                                        true, null, alertListener, "")
                                  : alertsService.showAlertNotification(self.image, self.label,
                                                                        'Ссылка раскукожена:\n' + reURL,
                                                                        false, "", null, ""));
            break;
          }

        default:
          cb(reURL);
          options.showAlert && alertsService.showAlertNotification(self.image, self.label,
                                                                   'Ошибка при попытке получить ссылку: ' + xhr.statusText + ' [' + ev.type + ':' + xhr.status + ']',
                                                                   false, "", null, "");
          break;
      }
    };

    let evf = f => ['load', 'error', 'abort'].forEach(f);
    evf(m => xhr.addEventListener(m, handler, false));

    xhr.mozBackgroundRequest = true;
    xhr.open('HEAD', aURL, true);
    xhr.channel.loadFlags |= Ci.nsIRequest.LOAD_ANONYMOUS | Ci.nsIRequest.LOAD_BYPASS_CACHE | Ci.nsIRequest.INHIBIT_CACHING;
    xhr.setRequestHeader("User-Agent", "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", false);
    xhr.setRequestHeader("Accept", "text/html,text/xml", false);
    xhr.send(null);
  };

  function shouldDisplay() {
    if (gContextMenu.onLink && !gContextMenu.isTextSelected) {
      url = gContextMenu.getLinkURL();
      link = gContextMenu.link;
      isUnshortened = link.getAttribute("cb-short-url");
      mItem.label = isUnshortened ? "Скукожить ссылку" : "Раскукожить ссылку";
    }

    if (gContextMenu.onPlainTextLink && !gContextMenu.isTextSelected)
      url = gContextMenu.getLinkURL();

    if (gContextMenu.isTextSelected)
      url = document.commandDispatcher.focusedWindow.content.document.getSelection().toString().trim();

    mItem.hidden = !((gContextMenu.onLink || (gContextMenu.onPlainTextLink || gContextMenu.isTextSelected)
                      && options.showOnShortenedTextLinks) && isShortenedURL(url)
                     || gContextMenu.onLink && isUnshortened);
  };

  function promptDialog(aURL) {
    var input = {value: aURL};
    var prompt = Services.prompt.prompt(null, options.copyToClipboard ? "Раскукоженная ссылка скопирована!" : "Ссылка раскукожена!",
                                        "Отредактировать и открыть в новой вкладке?",
                                        input, null, {value: false});
    if (prompt)
      gBrowser.selectedTab = gBrowser.addTab(input.value);
  };

  mItem.onclick =()=> {
    if (gContextMenu.onLink && !gContextMenu.isTextSelected) {
      if (!isUnshortened) {
        if (options.changeColorForUnshortenedLinks) {
          link.style.color && link.setAttribute('cb-old-color', link.style.color);
          link.style.setProperty("color", "orangered", "important");

          var oldClr = link.getAttribute('cb-old-color');
        }

        xhr(url, reURL => {
          if (!reURL) {
            options.changeColorForUnshortenedLinks
              && (oldClr ? (link.style.setProperty("color", oldClr, "important"),
                            link.removeAttribute('cb-old-color')) : link.style.removeProperty("color"));
            return;
          }

          if (options.changeColorForUnshortenedLinks) {
            link.style.setProperty("color", options.unshortenedLinksColor, "important");
            options.changeColorBackAfterTimeout
              && setTimeout(()=> oldClr ? (link.style.setProperty("color", oldClr, "important"),
                                           link.removeAttribute('cb-old-color')) : link.style.removeProperty("color"), 1000);
          }

          options.copyToClipboard && gClipboard.write(reURL);

          options.replaceShortenedLinks && (link.setAttribute("cb-short-url", link.href),
                                            link.setAttribute("href", reURL));
        })
      }
      else {
        oldClr ? (link.style.setProperty("color", oldClr, "important"),
                  link.removeAttribute('cb-old-color')) : link.style.removeProperty("color");

        link.setAttribute("href", isUnshortened);
        link.removeAttribute("cb-short-url");
      }
    }
    else {
      xhr(url, reURL => {
        if (!reURL) return;
        options.copyToClipboard && gClipboard.write(reURL);
        options.promptDialogForTextLinks && promptDialog(reURL);
      })
    }
  };

  this._handleClick =()=> {
    url = gClipboard.read();
    if (!(url && isShortenedURL(url))) {
      options.showAlert && alertsService.showAlertNotification(self.image, self.label,
                                                               'Неправильная ссылка!', false, "", null, "");
      return;
    }

    xhr(url, reURL => {
      if (!reURL) return;

      options.copyToClipboard && gClipboard.write(reURL);
      promptDialog(reURL);
    })
  };

  cntxtMenu.addEventListener("popupshowing", shouldDisplay, false);

  addDestructor(()=> {
    cntxtMenu.removeEventListener("popupshowing", shouldDisplay, false);
    cntxtMenu.removeChild(mItem);
  });
})(document.getElementById("contentAreaContextMenu"), document.getElementById("context-sep-open"), document.createElement("menuitem"));

Отсутствует

 

№1039822-07-2016 18:52:54

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

Re: Custom Buttons

turbot пишет

Еще вопросик: а нет способа получить атрибут стиля со свойством important, ну или определить его наличие? Ну, то есть, типа element.style.getProperty("color")?

:/ Может Syntax

Отсутствует

 

№1039922-07-2016 19:06:38

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

Re: Custom Buttons

Dumby
Ну, я туда смотрел. getPropertyValue - не отдает наличие important, а getPropertyCSSValue - отдает значение примененного стиля, а не только inline. Вроде, больше ничего подходящего там нет. :(
Ну да фиг с ним. Вероятность того что обратно возвернутый цвет с important чего-то испортит - невелика. :)

Отсутствует

 

№1040022-07-2016 20:16:54

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

Re: Custom Buttons

turbot пишет

Ну, я туда смотрел. getPropertyValue - не отдает наличие important, а getPropertyCSSValue - отдает значение примененного стиля, а не только inline. Вроде, больше ничего подходящего там нет. :(
Ну да фиг с ним. Вероятность того что обратно возвернутый цвет с important чего-то испортит - невелика. :)

Бла-бла-бла.
Скажи мне чётко и ясно, это работает, или это не работает.

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

Выделить код

Код:

data:image/png;base64,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

Отсутствует

 

Board footer

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