>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >Как приручить кириллицу в кнопках открывающих страницу (ссылку) в IE http://forum.mozilla-russia.org/viewtopic.php?id=72991 |
ruslaw > 29-12-2017 02:12:13 |
Остро интересует проблема открытия ссылок и страниц с русскоязычными адресами и названиями файлов/страниц в Interner Explorere со страницы в FireFox. Причем как сетевых, так и внутренних (абсолютных и относительных), внутренние даже важнее. Выделить код Код:function openIElink() { var environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); var localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var url = content.location.href; localFile.initWithPath(environment.get("PROGRAMFILES")+ "\\Internet Explorer\\iexplore.exe"); process.init(localFile); process.run(false, [url], 1); } openIElink(); C:\test.html - открытвает нормально Аналогично кнопка от bunda1 https://forum.mozilla-russia.org/viewtopic.php?pid=725309#p725309 Выделить код Код:function openWith(path, arg) { try { var url = gContextMenu.getLinkURL() } catch(e) { var loc = content.document.location; var url = (loc.host.slice(-3) == '.рф') ? Services.io.newURI(loc.href, null, null).asciiSpec : loc; }; http://www.кто.рф открывает как http://www.:B>.@d/ Что же делать?! |
Dumby > 29-12-2017 08:06:16 |
ruslaw пишет
nsIProcess.runw() пробовал? |
mokujin > 29-12-2017 10:53:54 |
ruslaw пишет
Знач, шота не то или не туда заменил ;-) скрытый текст Выделить код Код:function openIElink() { var environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); var localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var arg = decodeURIComponent(content.location); localFile.initWithPath(environment.get("PROGRAMFILES")+ "\\Internet Explorer\\iexplore.exe"); process.init(localFile); process.runw(false, [arg], 1); } |
ruslaw > 29-12-2017 11:11:45 |
mokujin, |
mokujin > 29-12-2017 11:32:43 |
Ну смотри свои плугины, значит. мож кто перехватывает УРЛ строку. У мя открывает в IE из PM файл с таким именем: 29-12-2017 11:41:54 CODE Выделить код Код:/* CODE */ function openIElink() { var environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); var localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); var arg = decodeURIComponent(content.location); localFile.initWithPath(environment.get("PROGRAMFILES")+ "\\Internet Explorer\\iexplore.exe"); process.init(localFile); process.runw(false, [arg], 1); } openIElink(); |
ruslaw > 29-12-2017 20:25:41 |
Да, проблема разрешена. Я просто не заметил последней строки - openIElink(); |
mokujin > 29-12-2017 21:17:42 |
ruslaw пишет
ЯННП КМ - ? (ПКМ??) - хочешь чтоб сразу все ссылки открывались в IE - а как ты будешь в Mozilla "бравзерить"... можно добавить в ту кнопку, действие для клика на самом меню, типа так: Выделить код Код:// после создания меню, после строчки menu.hidden = true; // добаь это. будет открывать в IE ссылку на кот. кликнул. menu.addEventListener("mouseup", function(ef) { // действие по нажатию на сам пункт меню switch(ef.button) { case 0: openIElink(); contextMenu.hidePopup(); break; } }); |
ruslaw > 29-12-2017 22:55:56 |
Спасибо, так гораздо ближе к моим целям. |
mokujin > 29-12-2017 23:34:09 |
тебе нужно выполнить батнег из кнопки, чтоле? запустить батнег из бравзера и передать ему адресс ссылки, так? Это не сложно и можно. |
ruslaw > 30-12-2017 01:53:44 |
Я там не совсемп понял что означает "скрипты которые следует помещать в вкладку Справка" и куда вставлять код приведенный под заголовком "Вкладка Код:". Увы я не очень в теме. Вот я нашел кнопку Выделить код Код:startProcess("C:\\start.bat",[""]); function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(file.exists()) { var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); } else custombuttons. alertBox ("Файл не найден", path); }; Но она открывает один конкретный файл, что конечно не интресно. |
okkamas_knife > 30-12-2017 06:43:16 |
*с интересом наблюдая как обновленцы пытаются поменять дворники через выхлопную трубу* получаем outerHTML ссылки и делаем реплейс href= на torun= и заменяем его изменённым получаем атрибут torun правим его добавляя полный стандартный путь чтоб было c:\\ололо\\блабла.txt ессно все предыдущие действия пихаем в листенер на загрузку страницы чтоб ссылки колбасило автоматом. |
mokujin > 30-12-2017 09:38:46 |
okkamas_knife пишет
О, как всё просто , оказалось-то ! ruslaw ruslaw пишет
Понимать надо прямо, вот как написано: Код - это вкладка КОД, а Справка - вкладка Справка (куда ложить текст батнег-а) Вот пример: скрытый текст Код Выделить код Код:/* CODE */ // Запуск CMD, BAT, VBScript из вкладки Справка // запускаемый батнег пишется в профиль // в случае VBSCRIPT наверное надо поменять выходную кодировку с 866 на 1251 хз. var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("myBatneg.cmd"); custombuttonsUtils.writeFile( file.path, convertFromUnicode("866", self.Help) ); file.launch(); Справка Выделить код Код:/*HELP*/ @echo off @chcp 866 @rem ============================================================================== echo . echo Привет, я батнег из CustomButtons! echo . pause exit exit |
okkamas_knife > 30-12-2017 10:01:39 |
*с видом маньяка-эксгибициониста распахнул плащ* ессно на странице должны быть ссылки это покажет первую |
ruslaw > 30-12-2017 11:48:37 |
mokujin, спасибо, расширение классное, как раз для меня, я действительно поклонник такой идеологии (TC-браузер) хотя в моем данном случае оно конечно не решает проблему.
к сожалению перед маньяком не "блондинка", а ребенок |