Выделяю текст, жму кнопку - балаболка включается и сразу закрывается, не успев мяукнуть.
А в текстовом документе "Text To Editor.txt" на рабочем столе текст записался?
Параметры "-rmq" q = закрывать балаболку после прочтения текста, параметр q - уберите и посмотрите, какой в программе текст открылся, а то может его там нет вовсе.
У меня на windows 7 х32 все исправно работает.
Отсутствует
А в текстовом документе "Text To Editor.txt" на рабочем столе текст записался?
Текст в файле есть, но в балаболке пусто.
windows 7 х64
Отредактировано Ultima2m (19-07-2016 11:41:25)
Отсутствует
Текст в файле есть, но в балаболке пусто. windows 7 х64
Ну тогда может оставить все как было и еще раз попробовать:
custombuttonsUtils.writeFile( file.path, convertFromUnicode("UTF-8", sel) ); //"UTF-16"
Но у меня вот так, как раз и не работает
Отсутствует
Может пути к файлу указать явно, с возможностью поместить его в папке с балаболкой?
Я не знаю, тут такое дело:
-если созданный текстовой документ в кодировке utf8 или windows-1251 бросить на ярлык программы - программа его откроет без проблем (без кракозябр).
-через cmd - тоже все работает хорошо
-а через CB - почему-то "через раз" работает
Причем вот какая штука, сейчас проверил еще:
-текстовой файл созданный в стандартном блокноте windows в utf8 балаболка открывает без крякозябр.
-а записанный в utf8 через CB текстовой файл - балаболка открывает с крякозябрами.
Вот только PotPlayer не дает добавить несколько файлов одновременно в плейлист.
Не, я тоже не знаю что PotPlayer от меня хочет.
А может в этом все дело - неправильный utf8?
Отредактировано fokanik (19-07-2016 20:32:54)
Отсутствует
Dumby
Нужна твоя рецензия. На предмет пригодности кнопки к выкладыванию в готовые.
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)
Отсутствует
voqabuhe
Нет. Так тоже порядок. Вообще, ночнушка последний месяц очень нестабильна. У меня три непофикшенных бага, от которых падает. Вот, например, из-за последнего - половину стилей поотключать пришлось.
Поменял в кнопке иконку на png. Так не падает?
Добавлено 20-07-2016 16:46:26
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)
Отсутствует
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>
Отсутствует
Vitaliy V.
Я ж готовые таскаю. С flaticons. Меня, с векторной графикой, максимум, на что хватает, это слегка в Inkscape подправить. А размер, вроде, у фф'шных иконок svg'шных такой же, потому и не менял.
Отсутствует
А размер, вроде, у фф'шных иконок svg'шных такой же
Да не там разный размер
Отсутствует
записанный в utf8 через CB текстовой файл - балаболка открывает с крякозябрами
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, наверно, сам обрежет эти пробелы. Проверь.
Нужна твоя рецензия. На предмет пригодности кнопки к выкладыванию в готовые.
Не буду я давать никакую рецензию, тем более на такой предмет.
А пообсуждать кнопку можно.
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 будет показан при любых настройках.
Это так задумано или просто типа скобки потерялись?
Отсутствует
А пообсуждать кнопку можно.
Ну, я это и имел в виду. Спасибо.
Любопытство: а ты пробовал '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)
Отсутствует
Текст в файле есть, но в балаболке пусто.
windows 7 х64
Похоже, что балаболке нужен файл с 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
А уже 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);
Да, ссылки с пробелами открываются пачками
Отредактировано fokanik (21-07-2016 22:55:12)
Отсутствует
Выделить кодКод:
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);
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Ultima2m, а как на win7x64 - будет работать, проверьте пожалуйста:
Перепробовал все варианты. Не читает.
Файл создается с текстом. Открывается в балаболке, но текст не передается.
Если открыть этот же файл вручную, то текст в балаболке появляется.
То ли у меня какая-то проблема, то ли надо еще кому-то проверить.
Отсутствует
На правах развлечения:
О, круто как всегда! Большое спасибо .
А то нет такой ссылки, чтоб тыком проверить.
Ну, можно найти. Или сочинить. nsIXMLHttpRequest random ...
Вот ещё ситуация: если выделить скукоженную ссылку (как текстовую),
которая внутри другой ссылки, то раскукоживает не как текстовую,
а прямо в саму ссылку, что несколько странно. about links like http://goo.gl/l6MS
Отсутствует
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"));
Отсутствует
Dumby
Ну, я туда смотрел. getPropertyValue - не отдает наличие important, а getPropertyCSSValue - отдает значение примененного стиля, а не только inline. Вроде, больше ничего подходящего там нет.
Ну да фиг с ним. Вероятность того что обратно возвернутый цвет с important чего-то испортит - невелика.
Отсутствует
Ну, я туда смотрел. getPropertyValue - не отдает наличие important, а getPropertyCSSValue - отдает значение примененного стиля, а не только inline. Вроде, больше ничего подходящего там нет.
Ну да фиг с ним. Вероятность того что обратно возвернутый цвет с important чего-то испортит - невелика.
Бла-бла-бла.
Скажи мне чётко и ясно, это работает, или это не работает.
data:image/png;base64,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
Отсутствует