firepox
Вот кнопка поправленная gyra: Save snapshot to html для FF57+
«The Truth Is Out There»
Отсутствует
Господа, на мой пост №12719 на предыдущей странице никто не ответил, поэтому попрошу еще раз.
Можно подправить кнопку Find+ ? Счетчик совпадений перестал показывать совпадения в инпутах и textarea, хотя подсветка найденного работает. В консоли при этом ошибка TypeError: findbarFinder._getEditableNode is not a function
Отсутствует
toxa
только это
http://forum.mozilla-russia.org/viewtopic.php?pid=759770#p759770
["gFindBar", "gFindBarInitialized"].forEach((key, ind) => {
this[key] = Object.getOwnPropertyDescriptor(window, key);
delete window[key];
window[key] = ind ? true : bar;
});
var key = "getCachedFindBar" in gBrowser ? "getCachedFindBar" : "getFindBar";
this[this.gBrKey = key] = gBrowser[key];
gBrowser[key] = () => bar;
[
"close", "startFind", "onMatchesCountResult",
"_updateMatchesCount", "_onBrowserKeypress", "receiveMessage"
].forEach((key, ind) => {
var func = bar[key].bind(bar);
bar[key] = ind
? (...args) => this[key](...args) || func(...args)
: (...args) => func(...args) || this[key](...args);
});
this.url = "data:," + encodeURIComponent(`
Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_DEFAULT
&& Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_CONTENT
|| (nsvo => {
var proto = nsvo.Finder.prototype;
if ("_requestMatchesCount" in proto) return;
proto._requestMatchesCount = proto.requestMatchesCount;
proto.requestMatchesCount = ${
this.newRequestMatchesCount
}
})(Cu.import("resource://gre/modules/Finder.jsm", {}));`
);
delete this.newRequestMatchesCount;
Services.ppmm.loadProcessScript(this.url, true);
},
newRequestMatchesCount: async function requestMatchesCount(aWord, aLinksOnly) {
if (typeof aLinksOnly != "boolean") {
var {linksOnly, data} = aLinksOnly;
aLinksOnly = linksOnly;
this.entireWord = data.entireWord;
this.caseSensitive = data.caseSensitive;
this.onModalHighlightChange(data.useModalHighlight);
this.onHighlightAllChange(data.highlightAll);
data.highlightAll && await this.highlighter.highlight(true, aWord, linksOnly);
this._iterator && this._iterator.reset();
var obj;
Object.defineProperty(this, "_currentMatchesCountResult", {
configurable: true, enumerable: true,
get: (val = obj) => {
if (val) {
if (!val.total) val.total = new Number(0);
val.currentFound = val._currentFound;
}
return obj = val;
},
set: val => {
if (val) return obj = val;
delete this._currentMatchesCountResult;
return obj = this._currentMatchesCountResult = val;
}
});
var lfr = this._lastFindResult;
lfr !== null && lfr != Ci.nsITypeAheadFind.FIND_NOTFOUND
|| Object.defineProperty(this, "_lastFindResult", {
configurable: true, enumerable: true, get: () => null,
set: val => {
if (val == Ci.nsITypeAheadFind.FIND_WRAPPED)
val = Ci.nsITypeAheadFind.FIND_FOUND;
delete this._lastFindResult;
return this._lastFindResult = val;
}
});
}
this._requestMatchesCount(aWord, aLinksOnly);
},
close() {
bar.collaped = false;
this.setProgressListener(false);
this.setBrowser(null, null);
},
startFind() {
if (this.maybeCollapse(gBrowser.selectedBrowser))
return true;
if (bar.hidden)
this.setBrowser(300),
this.setProgressListener(true);
else if (!ctrlFcloseFinbar)
setTimeout(() => this.updateMatchesCount(), 100);
},
onMatchesCountResult(res) {
if (!("currentFound" in res) || res.total == -1 || res.currentFound)
return;
bar._foundMatches.value = `${+res.total || "Нет"} совпадени${
bar.pluralForm.get(res.total, "е;я;й")
}.`;
bar._foundMatches.hidden = false;
return true;
},
_updateMatchesCount() {
return true;
},
_onBrowserKeypress(e) {
if (!bar.hidden) return;
if (!e.charCode) return true;
this.setBrowser(300);
this.setProgressListener(true);
},
receiveMessage(msg) {
msg.target = bar._browser;
},
progressListenerAdded: false,
setProgressListener(add) {
if (add) {
if (this.progressListenerAdded) return;
this.progressListenerAdded = true;
gBrowser.addProgressListener(this);
this.listenCtrlF(true);
} else {
if (!this.progressListenerAdded) return;
this.progressListenerAdded = false;
gBrowser.removeProgressListener(this);
this.listenCtrlF(false);
}
},
handleEvent(e) {
if (
e.ctrlKey && e.code == "KeyF"
&& !e.shiftKey && !e.altKey && !bar.collapsed
)
e.preventDefault(),
e.stopPropagation(),
bar.close();
},
updateMatchesCount() {
var str = bar._findField.value;
if (!str) return;
var data = {
entireWord: bar._entireWord,
caseSensitive: bar._typeAheadCaseSensitive,
highlightAll: bar._highlightAll,
useModalHighlight: bar._useModalHighlight
};
bar.browser.finder.requestMatchesCount(
bar._findField.value,
{linksOnly: bar._findMode == bar.FIND_LINKS, data}
);
},
maybeCollapse(br) {
return br.isSyntheticDocument ||
br.documentContentType == "application/vnd.mozilla.xul+xml";
},
setBrowser(updateDelay, br = gBrowser.selectedBrowser) {
if (bar._browser != br) {
var b = bar._browser;
if (b) {
b.messageManager.removeMessageListener("Findbar:Mouseup", bar);
b.finder.removeResultListener(bar);
bar._highlightAll && b.finder.highlight(false);
}
if (br) {
br.messageManager.addMessageListener("Findbar:Mouseup", bar);
bar._updateBrowserWithState();
}
bar._browser = br;
}
if (!br) return;
bar._updateStatusUI();
bar._foundMatches.value = "";
br.finder.addResultListener(bar);
if (
!(bar.collapsed = this.maybeCollapse(br))
&& br.currentURI.spec != "about:blank"
&& updateDelay !== null
)
updateDelay
? setTimeout(this.updateMatchesCount, updateDelay)
: this.updateMatchesCount();
},
onStateChange(wpr, req, state) {
state & Ci.nsIWebProgressListener.STATE_STOP && this.setBrowser();
},
onLocationChange(wpr, req) {
req || Components.stack.formattedStack.includes("SessionStore.jsm")
|| this.setBrowser();
}
}).init(document.getElementById("appcontent")))();
Отсутствует
форум тихо но умирает...
Отсутствует
На случай, если кому-то понадобится, вот хоткеи для Spotify Web Player, реализованные в скрипте для программы Autohotkey:
; Jena sign - Dislike (remove from Daily Mix)
SC07D::
{
ControlClick, x141 y1004, spotify, , Left, 1, NA
return
}
Media_Play_Pause::
{
ControlClick, x960 y988, spotify, , Left, 1, NA
return
}
Media_Next::
{
ControlClick, x1005 y991, spotify, , Left, 1, NA
return
}
Media_Prev::
{
ControlClick, x911 y989, spotify, , Left, 1, NA
return
}
Поскольку кнопки прожимаютя по координатам, в аддоне Stylish или Stylus нужно будет добавить такой стиль для сайта, чтобы названия песен на нижней панели исчезли и не двигали кнопки управления:
.track-info {display: none !important;}
Также поставьте аддон Show Profile версии 0.9.9.9.1 (и отключите обновления). Он нужен для того, чтобы в названии окна выводилось имя профиля - spotify.
Приведенный AHK-скрипт будет работать без изменений в дефолтном Firefox ESR 52 (без тем оформления, без панелей), окно максимизировано, разрешение системы 1920x1080, включен дефолтный Aero.
Если у вас что-то отличается, то найти свои координаты кнопок плеера можете с помощью вспомогательной утилиты из комплекта AutoHotkey - "Active Window Info (Window Spy)", которая лежит здесь C:\Program Files\AutoHotkey\AU3_Spy.exe
Вам нужна будет строка Relative (default).
Для работы хоткеев, окно браузера не должно быть свернуто, но если окно просто на заднем плане, всё будет работать без проблем (для чего всё и затевалось, собственно).
Рекомендую отдельный профиль Firefox для этого дела.
Батник для удобного запуска браузера и скомпиленного AHK скрипта:
Поскольку проверку на лайкнутость реализовать мне не хватает знаний, если кому-то нужно, то вот рограмма, чтобы вывести только область с сердечком лайка поверх всех окон: OnTopReplica (и можете осуществлять проверку глазами :-)
Чтобы играть в фулскрин игры, и при этом видеть сердечко, запускайте игры в windowed режиме и делайте фулскрин с помощью программы fullscreenizer.
Отредактировано firefan (25-07-2018 20:41:48)
Отсутствует
toxa
только это
http://forum.mozilla-russia.org/viewtopic.php?pid=759770#p759770скрытый текст((bar, button = true, insertAtTop = true, ctrlFcloseFinbar = false) => ({
init(parent) {
var has = bar = parent.querySelector("#appcontent > findbar");
has || this.initFinbar(parent);
var lo = bar.linkedObject;
lo.listenCtrlF = ctrlFcloseFinbar
? listen => listen
? addEventListener("keydown", lo, true)
: removeEventListener("keydown", lo, true)
: () => {};
has && !bar.hidden && lo.listenCtrlF(true);
if (button) self._handleClick = () => bar.hidden
? bar.startFind(bar.FIND_NORMAL)
: bar.collapsed || bar.close();
addDestructor(lo.destroy, lo);
},
destroy(reason) {
if (reason[5] != "e") return;
bar.close();
bar._browser = {};
bar.remove();
this.setProgressListener(false);
for(var key of ["gFindBar", "gFindBarInitialized"])
Object.defineProperty(window, key, this[key]);
gBrowser[this.gBrKey] = this[this.gBrKey];
Services.ppmm.removeDelayedProcessScript(this.url);
Services.ppmm.loadProcessScript("data:," + encodeURIComponent(`
Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_DEFAULT
&& Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_CONTENT
|| (nsvo => {
var proto = nsvo.Finder.prototype;
if ("_requestMatchesCount" in proto) {
proto.requestMatchesCount = proto._requestMatchesCount;
delete proto._requestMatchesCount;
}
})(Cu.import("resource://gre/modules/Finder.jsm", {}));`
) , false);
},
initFinbar(parent) {
for(var tab of gBrowser.tabs) {
if (!tab._findBar) continue;
tab._findBar.browser = null;
tab._findBar._browser = {};
tab._findBar.remove();
delete tab._findBar;
}
bar = document.createElement("findbar");
var p = new Proxy({}, {get: () => () => {}});
bar._browser = {finder: p, messageManager: p};
parent.insertBefore(bar, insertAtTop ? parent.firstChild : null);
bar.linkedObject = this;["gFindBar", "gFindBarInitialized"].forEach((key, ind) => {
this[key] = Object.getOwnPropertyDescriptor(window, key);
delete window[key];
window[key] = ind ? true : bar;
});
var key = "getCachedFindBar" in gBrowser ? "getCachedFindBar" : "getFindBar";
this[this.gBrKey = key] = gBrowser[key];
gBrowser[key] = () => bar;
[
"close", "startFind", "onMatchesCountResult",
"_updateMatchesCount", "_onBrowserKeypress", "receiveMessage"].forEach((key, ind) => {
var func = bar[key].bind(bar);
bar[key] = ind
? (...args) => this[key](...args) || func(...args)
: (...args) => func(...args) || this[key](...args);
});
this.url = "data:," + encodeURIComponent(`
Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_DEFAULT
&& Services.appinfo.processType != Services.appinfo.PROCESS_TYPE_CONTENT
|| (nsvo => {
var proto = nsvo.Finder.prototype;
if ("_requestMatchesCount" in proto) return;
proto._requestMatchesCount = proto.requestMatchesCount;
proto.requestMatchesCount = ${
this.newRequestMatchesCount
}
})(Cu.import("resource://gre/modules/Finder.jsm", {}));`
);
delete this.newRequestMatchesCount;
Services.ppmm.loadProcessScript(this.url, true);
},
newRequestMatchesCount: async function requestMatchesCount(aWord, aLinksOnly) {
if (typeof aLinksOnly != "boolean") {var {linksOnly, data} = aLinksOnly;
aLinksOnly = linksOnly;this.entireWord = data.entireWord;
this.caseSensitive = data.caseSensitive;
this.onModalHighlightChange(data.useModalHighlight);
this.onHighlightAllChange(data.highlightAll);
data.highlightAll && await this.highlighter.highlight(true, aWord, linksOnly);
this._iterator && this._iterator.reset();
var obj;
Object.defineProperty(this, "_currentMatchesCountResult", {
configurable: true, enumerable: true,
get: (val = obj) => {
if (val) {
if (!val.total) val.total = new Number(0);
val.currentFound = val._currentFound;
}
return obj = val;
},
set: val => {
if (val) return obj = val;
delete this._currentMatchesCountResult;
return obj = this._currentMatchesCountResult = val;
}
});
var lfr = this._lastFindResult;
lfr !== null && lfr != Ci.nsITypeAheadFind.FIND_NOTFOUND
|| Object.defineProperty(this, "_lastFindResult", {
configurable: true, enumerable: true, get: () => null,
set: val => {
if (val == Ci.nsITypeAheadFind.FIND_WRAPPED)
val = Ci.nsITypeAheadFind.FIND_FOUND;
delete this._lastFindResult;
return this._lastFindResult = val;
}
});
}
this._requestMatchesCount(aWord, aLinksOnly);
},close() {
bar.collaped = false;
this.setProgressListener(false);
this.setBrowser(null, null);
},
startFind() {
if (this.maybeCollapse(gBrowser.selectedBrowser))
return true;
if (bar.hidden)
this.setBrowser(300),
this.setProgressListener(true);
else if (!ctrlFcloseFinbar)
setTimeout(() => this.updateMatchesCount(), 100);
},
onMatchesCountResult(res) {
if (!("currentFound" in res) || res.total == -1 || res.currentFound)
return;bar._foundMatches.value = `${+res.total || "Нет"} совпадени${
bar.pluralForm.get(res.total, "е;я;й")
}.`;
bar._foundMatches.hidden = false;
return true;
},
_updateMatchesCount() {
return true;
},
_onBrowserKeypress(e) {
if (!bar.hidden) return;
if (!e.charCode) return true;
this.setBrowser(300);
this.setProgressListener(true);
},
receiveMessage(msg) {
msg.target = bar._browser;
},progressListenerAdded: false,
setProgressListener(add) {
if (add) {
if (this.progressListenerAdded) return;
this.progressListenerAdded = true;
gBrowser.addProgressListener(this);
this.listenCtrlF(true);
} else {
if (!this.progressListenerAdded) return;
this.progressListenerAdded = false;
gBrowser.removeProgressListener(this);
this.listenCtrlF(false);
}
},
handleEvent(e) {
if (
e.ctrlKey && e.code == "KeyF"
&& !e.shiftKey && !e.altKey && !bar.collapsed
)
e.preventDefault(),
e.stopPropagation(),
bar.close();
},
updateMatchesCount() {
var str = bar._findField.value;
if (!str) return;
var data = {
entireWord: bar._entireWord,
caseSensitive: bar._typeAheadCaseSensitive,
highlightAll: bar._highlightAll,
useModalHighlight: bar._useModalHighlight
};
bar.browser.finder.requestMatchesCount(
bar._findField.value,
{linksOnly: bar._findMode == bar.FIND_LINKS, data}
);
},
maybeCollapse(br) {
return br.isSyntheticDocument ||
br.documentContentType == "application/vnd.mozilla.xul+xml";
},
setBrowser(updateDelay, br = gBrowser.selectedBrowser) {
if (bar._browser != br) {
var b = bar._browser;
if (b) {
b.messageManager.removeMessageListener("Findbar:Mouseup", bar);
b.finder.removeResultListener(bar);
bar._highlightAll && b.finder.highlight(false);
}
if (br) {
br.messageManager.addMessageListener("Findbar:Mouseup", bar);
bar._updateBrowserWithState();
}
bar._browser = br;
}
if (!br) return;
bar._updateStatusUI();
bar._foundMatches.value = "";
br.finder.addResultListener(bar);
if (
!(bar.collapsed = this.maybeCollapse(br))
&& br.currentURI.spec != "about:blank"
&& updateDelay !== null
)
updateDelay
? setTimeout(this.updateMatchesCount, updateDelay)
: this.updateMatchesCount();
},
onStateChange(wpr, req, state) {
state & Ci.nsIWebProgressListener.STATE_STOP && this.setBrowser();
},
onLocationChange(wpr, req) {
req || Components.stack.formattedStack.includes("SessionStore.jsm")
|| this.setBrowser();
}
}).init(document.getElementById("appcontent")))();
Нет, это для Quantumа.
А мне для Gecko.
И еще вопрос был: как приделать на текстовое поле файндбара обработчики мышиных событий? У меня что то не получается.
Отсутствует
У меня вопрос, в фф61 убрали попап?
Этот код не пашет, в /*Initialization Code*/, до этого работал в 60.
// ==UserScript== // @name AutoPopup.uc.js // @description Auto popup menulist/menupopup/Panelpopup // @compatibility Firefox 2.0+ // @author GOLF-AT // @version 2.0.0.20131119 (function() { var PopElt = null; var DropElt = null; var PopTimer = null; var HideTimer = null; var AlwaysPop = false; var nDelay = 600; function IsNewMenuBtn(elt) { try { return elt.id=='PanelUI-menu-button'; }catch(e) { return false; } } function AutoPopup() { PopTimer = null; if (DropElt) { if (DropElt.localName=='dropmarker' || IsNewMenuBtn(DropElt)) PopElt = DropElt; else { var v = null; try { v = DropElt.ownerDocument. getAnonymousNodes(DropElt); }catch(ex) {} if (v!=null && v.length!=0 && v[0]. localName=='menupopup') PopElt = v[0]; else PopElt = DropElt.childNodes[0]; } if (IsNewMenuBtn(PopElt)) { PanelUI.show(); return; } try { PopElt.showPopup(PopElt.parentNode, -1, -1, 'popup', 'bottomleft', 'topleft'); }catch(e) { PopElt = null; } } } function HidePopup() { try { if (PopElt.localName=='dropmarker') PopElt.parentNode.closePopup(); else if (IsNewMenuBtn(PopElt)) PanelUI.hide(); else PopElt.hidePopup(); }catch(e) {} HideTimer = null; DropElt = null; PopElt = null; } function MouseOver(e) { if (!AlwaysPop && !document.hasFocus()) return; if (e.target.getAttribute('cb-name') == "Proxy") return; if (e.target.getAttribute('cb-name') == "Merge Custom Button") return; if (e.target.getAttribute('cb-name') == "Session Bookmarks") return; if (IsButton(e.target)) { type = e.target.getAttribute('type'); if (type == 'menu-button') { if (e.originalTarget!=e.target) return; } /*else { if (type != 'menu') return; }*/ } if (HideTimer) { window.clearTimeout(HideTimer); HideTimer = null; } try { if ('PopupAutoComplete'==e.target.id. substr(0,17)) return; for(var elt=e.target; elt!=null; elt= elt.parentNode) { if (elt.localName=='popup' || elt. localName=='menupopup') return; } }catch(ex) {} if (IsNewMenuBtn(PopElt)) { if (e.target != PopElt) HidePopup(); } else if (PopElt != null) { if (DropElt!=null && e.target==DropElt) return; try { if (PopElt.localName != 'dropmarker' ) { for(var elt=e.target; elt!=null; elt=elt.parentNode) { if (elt == PopElt) return; } } }catch(ex) {} HidePopup(); } DropElt = e.target; PopTimer = setTimeout(AutoPopup, nDelay); } function MouseOut(e) { if (PopTimer) { window.clearTimeout(PopTimer); PopTimer = null; } if (!HideTimer && PopElt && !IsNewMenuBtn(e. target)) HideTimer = window.setTimeout(HidePopup, 500); } function IsButton(elt) { try { return elt.localName=='toolbarbutton' || elt .localName=='button'; }catch(e) { return false; } } function IsMenuButton(elt) { if (IsNewMenuBtn(elt)) return true; if (!IsButton(elt)) return false; for(var i=0; i<2; i++) { try { var nodes = i==0x01 ? elt.childNodes : elt. ownerDocument.getAnonymousNodes(elt); if (nodes!=null && nodes.length && nodes[0] .localName=='menupopup') return true; }catch(e) {} } return false; } function EnumElement(elt) { try { if (elt.localName == 'prefpane') { elt.addEventListener('paneload', function(e) { setTimeout(function() { EnumElement(e. target); }, 100); }, false); } else if(elt.id=='sidebar' && !elt.hasAttribute( 'AutoPopup')) { elt.setAttribute('AutoPopup', true) elt.addEventListener('SidebarFocused', function(e) { EnumElement(elt); }, false); } else if(elt.id == 'editBookmarkPanel') return; }catch(e) {} for(var i=0; i<2; i++) { var nodes = null; try { if (elt.localName == 'browser') { i = 1; nodes = elt.contentDocument.childNodes; } else nodes = i==0x01 ? elt.childNodes : elt. ownerDocument.getAnonymousNodes(elt); }catch(e) { nodes = null; } if (nodes == null) continue; for(var n=0; n<nodes.length; n++) { try { var node = nodes[n]; if ('PopupAutoComplete'==node.getAttribute( 'id').substr(0,17) || 'menupopup'==node .localName || node.localName=='popup') ; else if (node.localName != 'dropmarker') { if (node.localName=='menu' && 'menubar' ==node.parentNode.localName) ; else if(!IsMenuButton(node)) node = null; } else if(node.getAttribute('type')=='menu') { node = node.parentNode; if (!node.firstChild || node.firstChild. localName!='menupopup') continue; } if (node == null) { EnumElement(nodes[n]); continue; } if (node.hasAttribute('command')) continue; addEventListener('mouseout', MouseOut, false, node); addEventListener('mouseover',MouseOver, false, node); }catch(e) {} } } } setTimeout(function() { EnumElement(document); }, 1200); })();
this._handleClick =()=> menuPopup.ShowPopup(this,-1,-1,"popup","bottomleft","topleft");var array=[ ["IE", "c:\\Program files\\Internet Explorer\\iexplore.exe"], ["Explorer", "c:\\windows\\explorer.exe"], ["separator"], ["Cmd Prompt", "C:\\windows\\system32\\cmd.exe"], ["Media Player", "C:\\Program Files\\Windows Media Player\\wmplayer.exe"], ["Task Manager", "C:\\windows\\system32\\taskmgr.exe"], ["Control Panel", "C:\\windows\\system32\\control.exe"], ["separator"], ["Notepad", "c:\\windows\\notepad.exe"], ["Calculator", "C:\\windows\\system32\\calc.exe"], ["Virtual Keyboard", "C:\\windows\\system32\\OSK.exe"], ["Character table", "C:\\windows\\system32\\charmap.exe"] ]; var menuPopup=self.appendChild(document.createElement("menupopup")); array.forEach((m)=> { if(m=="separator"){menuPopup.appendChild(document.createElement("menuseparator"));return}; var mItem=document.createElement("menuitem"); mItem.setAttribute("label", m[0]); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", "moz-icon://file://" + m[1]); mItem.onclick =e=> Components.Constructor("@mozilla.org/file/local;1","nsIFile","initWithPath")(m[1]).launch(); menuPopup.appendChild(mItem);});
Отредактировано func4ptch4 (27-07-2018 23:09:22)
Отсутствует
кнопки где ShowPopup если заменить на OpenPopup, то работают но без попапа
В общем для меня эта слишком сложно понять, прошу вашей помощи.... в чем может быть проблема
//this._handleClick =()=> menuPopup.ShowPopup(this,-1,-1,"popup","bottomleft","topleft");var array=[ this._handleClick =()=> menuPopup.openPopup(this, "after_start");var array=[
JavaScript – это язык, чувствительный к регистру. Это значит,
что ключевые слова, переменные, имена функций и любые другие идентификаторы языка
должны всегда содержать одинаковые наборы прописных и строчных букв.Например, ключевое слово while должно набираться как «while», а не «While» или «WHILE».
Аналогично online, Online, OnLine и ONLINE – это имена четырех разных переменных.
Отсутствует
Dumby
Спасибо за ответ, насчет регистра я думаю это не в нем дело, так как до этого все работало я ничего в коде не трогал, но спасибо буду иметь в виду что чувствителен к регистру.
Английский у меня так себе, но я понял что его выпилили (Part 3 - remove deprecated showPopup method) или фикснули. В общем ничего не понял)
Оставлю openPopup хоть и коряво код с ним работает но пашет.
Отсутствует
Небольшая просьба,
что нужно изменить в коде, чтобы при клике на кнопку выполнялось действие?
Сейчас нужно выполнять 2 действия - нажать на треугольник рядом с кнопкой и нажать на Stop All Tabs.
Спасибо.
this.StopAll=function(){ try{ for (var i=0;i<gBrowser.browsers.length;i++){ gBrowser.browsers[i].stop(); } }catch(ex) {} } var nMItem=function(label,img,obj){ var m=document.createElement('menuitem'); m.setAttribute('label',label); m.f=obj.StopAll.bind(obj); m.setAttribute('oncommand','this.f()'); m.setAttribute('image',img); m.setAttribute('class','menuitem-iconic'); return m; } var mP=document.createElement('menupopup'); mP.appendChild(nMItem('Stop All Tabs',this.image,this)); this.appendChild(mP); this.type="menu-button";
Отредактировано firepox (31-07-2018 00:02:18)
Отсутствует
Вставка символа можно адаптировать к 61?
Только переехал с 54 – ничего не помню и не знаю ) Даже некоторые из таких не работают:
var url1="http://www.youtube.com/watch?v"; var url = window._content.document.location.href; var chkpoint="&"; var url=url.slice(31,55); var arrayOfStrings = url.split(chkpoint); var url2=arrayOfStrings[0]; loadURI(url1+url2) const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]. getService(Components.interfaces.nsIClipboardHelper); gClipboardHelper.copyString(url1+url2)
Отсутствует
vitalii201
Insert special symbol = лучше этот код поправьте, работает но не весь функционал.
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%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Indomito%20%u0438%20Difabor-%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434-%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28Firefox%29%20%u043E%u044211.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0Avar%20delay%3D600%2Carray%3D%5B%5D%2CsymbList%2CmyID%3D_id%2CsymbName%3DmyID+%22.symbols%22%2Cmynum%3D0%3B%0Avar%20symbListOrig%3D%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%20%0A%0Athis.onmousedown%3Dfunction%28event%29%7Bthis._mouseDownTime%3DDate.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%21%3D0%29return%3B%0A%20%20%20%20//if%28event.button%3D%3D2%29this._mouseDownTime%3DDate.now%28%29%3B%0A%20%20%20%20//%7D%3B%0A%0Athis.tooltipText%3D%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%22%3B%0A%0Athis.onclick%3Dfunction%28event%29%7B%0A%20%20%20%20symbList%3D%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%3D%3D0%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%3DsymbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%3Ddocument.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%28node%20%26%26%20node.parentNode%29%20node.parentNode.removeChild%28node%29%3B%20//%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%3Ddocument.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%3Dthis.id+%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%7B%0A%20%20%20%20%20%20%20%20%20var%20menuItem%3Ddocument.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2Csymbol%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%3D%2212px%22%3B%20//%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2CinsertText%2Cfalse%29%3B%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%7D%29%3B%0A%0A%20%20%20%20%20%20menuPopup.openPopup%28this%2C-1%2C-1%2C%22popup%22%2C%22bottomleft%22%2C%22topleft%22%29%3B%7D%0A%20%20%20%20else%20if%28event.button%3D%3D0%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28%28event.button%3D%3D1%20%7C%7C%20%28event.button%3D%3D0%26%26event.ctrlKey%29%29%20%26%26%20%28%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%29%7B%0A%20%20%20%20%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28%28event.button%3D%3D1%20%7C%7C%20%28event.button%3D%3D0%26%26event.ctrlKey%29%29%20%26%26%20%28event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%29%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%3D%3D2%20%26%26%20%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%7B%0A%20%20%20%20%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%3Dfunction%28event%29%7B%0A%20%20%20%20if%28event.button%3D%3D2%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%7B%0A%20%20%20%20%20%20%20%20//%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3Bevent.stopPropagation%28%29%3B%7D%7D%3B%0A%0Afunction%20startProcess%28path%2Cargs%29%7B%0A%20%20%20%20var%20file%3DComponents.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%7B%0A%20%20%20%20%20%20%20var%20process%3DComponents.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2Cargs%2Cargs.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2Cpath%29%3B%7D%3B%0A%0A//this.type%3D%22menu%22%3B%20%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%7B%20%0A%20%20%20var%20text%3Dthis.label%3B%0A%20%20%20var%20cmd%3D%22cmd_insertText%22%3B%0A%20%20%20var%20controller%3Ddocument.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%7B%0A%20%20%20%20%20%20%20%20var%20controller%3Dcontroller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%3DComponents.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2Ctext%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2Cparams%29%3B%7D%7D%3B%0A%0A%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
Отредактировано func4ptch4 (31-07-2018 11:16:59)
Отсутствует
func4ptch4 у меня работает только для адр.строке и панели Поиска. Текстовые поля не охвачены, а в них же весь смысл. Я не знаю как поправить.
Отсутствует
что нужно изменить в коде, чтобы при клике на кнопку выполнялось действие?
Ничего в коде изменять не нужно.
Код нужно удалить из вкладки Инициализация, а во вкладку Код положить
for(var br of gBrowser.browsers) try {br.stop();} catch(ex) {}
Вставка символа можно адаптировать к 61?
Поскольку «this. type = "menu-button";» больше нет, то возиться
с собственной реализацией и стилями нужно каждому самому.
А если нужен просто пример вставки, то вот
this.type != "menu" ? this.type = "menu" : (popup => { var symbols = "¤ ¦ § © « » ¬ ® ° ± µ ¶ — ‘ ’ “ ” • ‰ ‹ › ™"; var inserter = { get docShell() { delete this.docShell; return this.docShell = "docShell" in document && document.docShell instanceof Ci.nsIDocShell ? document.docShell : window.docShell; }, get prefix() { delete this.prefix; return this.prefix = `data:,(${this.insertText})(`; }, insertText: function(text) { if (!this.docShell.isCommandEnabled("cmd_insertText")) return; var params = Cc["@mozilla.org/embedcomp/command-params;1"] .createInstance(Ci.nsICommandParams); params.setStringValue("state_data", text); this.docShell.doCommandWithParams("cmd_insertText", params); }, insert(text) { var br = document.activeElement; !br || br.localName != "browser" || !br.isRemoteBrowser ? this.insertText(text) : br.messageManager.loadFrameScript( this.prefix + encodeURIComponent(text.toSource()) + ");" , false); } }; this.onmousedown = e => { if (e.button) return; popup.setAttribute("oncommand", "inserter.insert(event.target.label);"); popup.inserter = inserter; var df = document.createDocumentFragment(); for(var sym of symbols.split(" ")) df.appendChild( document.createElement("menuitem") ).setAttribute("label", sym); popup.append(df); this.onmousedown = null; } })(this.appendChild(document.createElement("menupopup")));
Отсутствует
Черновой вариант кнопки - Insert special symbol, так как в коде не шарю... вроде пашет.
Спасибо 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%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Indomito%20%u0438%20Difabor-%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434-%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28Firefox%29%20%u043E%u044211.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0Avar%20delay%3D600%2Carray%3D%5B%5D%2CsymbList%2CmyID%3D_id%2CsymbName%3DmyID+%22.symbols%22%2Cmynum%3D0%3B%0Avar%20symbListOrig%3D%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%20%0A%0Athis.onmousedown%3Dfunction%28event%29%7Bthis._mouseDownTime%3DDate.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%21%3D0%29return%3B%0A%20%20%20%20//if%28event.button%3D%3D2%29this._mouseDownTime%3DDate.now%28%29%3B%0A%20%20%20%20//%7D%3B%0A%0Athis.tooltipText%3D%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%22%3B%0A%0Athis.onclick%3Dfunction%28event%29%7B%0A%20%20%20%20symbList%3D%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%3D%3D0%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%3DsymbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%3Ddocument.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%28node%20%26%26%20node.parentNode%29%20node.parentNode.removeChild%28node%29%3B%20//%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%3Ddocument.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%3Dthis.id+%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%7B%0A%20%20%20%20%20%20%20%20%20var%20menuItem%3Ddocument.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2Csymbol%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%3D%2212px%22%3B%20//%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2CinsertText%2Cfalse%29%3B%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%7D%29%3B%0A%0A%20%20%20%20%20%20menuPopup.openPopup%28this%2C-1%2C-1%2C%22popup%22%2C%22bottomleft%22%2C%22topleft%22%29%3B%7D%0A%20%20%20%20else%20if%28event.button%3D%3D0%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28%28event.button%3D%3D1%20%7C%7C%20%28event.button%3D%3D0%26%26event.ctrlKey%29%29%20%26%26%20%28%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%29%7B%0A%20%20%20%20%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28%28event.button%3D%3D1%20%7C%7C%20%28event.button%3D%3D0%26%26event.ctrlKey%29%29%20%26%26%20%28event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%29%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%3D%3D2%20%26%26%20%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%7B%0A%20%20%20%20%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%3Dfunction%28event%29%7B%0A%20%20%20%20if%28event.button%3D%3D2%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%7B%0A%20%20%20%20%20%20%20%20//%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3Bevent.stopPropagation%28%29%3B%7D%7D%3B%0A%0Afunction%20startProcess%28path%2Cargs%29%7B%0A%20%20%20%20var%20file%3DComponents.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%7B%0A%20%20%20%20%20%20%20var%20process%3DComponents.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2Cargs%2Cargs.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2Cpath%29%3B%7D%3B%0A%0A//this.type%3D%22menu%22%3B%0Athis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20symbols%20%3D%20%22%A4%20%A6%20%A7%20%A9%20%AB%20%BB%20%AC%20%AE%20%B0%20%B1%20%B5%20%B6%20%u2014%20%u2018%20%u2019%20%u201C%20%u201D%20%u2022%20%u2030%20%u2039%20%u203A%20%u2122%22%3B%0A%20%20%20%20%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20prefix%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.prefix%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.prefix%20%3D%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%28%60%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insertText%3A%20function%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.prefix%20+%20encodeURIComponent%28text.toSource%28%29%29%20+%20%22%29%3B%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20df.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%29%3B%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%7B%20%0A%20%20%20var%20text%3Dthis.label%3B%0A%20%20%20var%20cmd%3D%22cmd_insertText%22%3B%0A%20%20%20var%20controller%3Ddocument.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%7B%0A%20%20%20%20%20%20%20%20var%20controller%3Dcontroller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%3DComponents.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2Ctext%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2Cparams%29%3B%7D%7D%3B%0A%0A%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
Отсутствует
func4ptch4, спасибо. Наверное, будет не лишним символ "…"(Alt+0133) добавить.
Для "отставших от жизни"(перешёл с 54 сразу на 61): "работает … после перезагрузки" — теперь "в порядке вещей" с кнопками?
Отсутствует
func4ptch4, спасибо. Наверное, будет не лишним символ "…"(Alt+0133) добавить.
Для "отставших от жизни"(перешёл с 54 сразу на 61): "работает … после перезагрузки" — теперь "в порядке вещей" с кнопками?
Добавил, вообще там все походу делает код 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%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.type%21%3D%22menu%22%20%3F%20this.type%3D%22menu%22%20%3A%20%28popup%20%3D%3E%7B%0A%0A%20%20%20%20var%20symbols%3D%22%A4%20%A6%20%A7%20%A9%20%AB%20%BB%20%AC%20%AE%20%B0%20%B1%20%B5%20%B6%20%u2014%20%u2018%20%u2019%20%u201C%20%u201D%20%u2022%20%u2030%20%u2039%20%u203A%20%u2122%20%u2026%22%3B%0A%20%20%20%20var%20inserter%3D%7Bget%20docShell%28%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20prefix%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.prefix%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.prefix%20%3D%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%28%60%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insertText%3A%20function%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.prefix%20+%20encodeURIComponent%28text.toSource%28%29%29%20+%20%22%29%3B%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%3De%3D%3E%7B%0A%20%20%20%20%20%20%20%20if%28e.button%29return%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20df.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%29%3B%0A%0A%0A%0A//%20Indomito%20%u0438%20Difabor-%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434-%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28Firefox%29%20%u043E%u044211.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0A///var%20delay%3D600%2Carray%3D%5B%5D%2CsymbList%2CmyID%3D_id%2CsymbName%3DmyID+%22.symbols%22%2Cmynum%3D0%3B%0A///var%20symbListOrig%3D%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%0A%0A//this.onmousedown%3Dfunction%28e%29%7Bthis._mouseDownTime%3DDate.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%21%3D0%29return%3B%0A%20%20%20%20//if%28e.button%3D%3D2%29this._mouseDownTime%3DDate.now%28%29%3B%0A%20%20%20%20//%7D%3B%0A%0Athis.tooltipText%3D%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%22%3B%0A%0A//this.onclick%3Dfunction%28e%29%7B%0A//%20%20%20%20symbList%3D%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A//%20%20%20%20if%28e.button%3D%3D0%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21e.ctrlKey%26%26%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%7B%0A//%20%20%20%20%20%20array%3DsymbList.split%28%22%2C%22%29%3B%0A//%20%20%20%20%20%20var%20node%3Ddocument.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A//%20%20%20%20%20%20if%28node%20%26%26%20node.parentNode%29%20node.parentNode.removeChild%28node%29%3B%20//%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A//%0A//%20%20%20%20%20%20var%20menuPopup%3Ddocument.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A//%20%20%20%20%20%20menuPopup.id%3Dthis.id+%22-menuPopup%22%3B%0A//%0A//%20%20%20%20%20%20array.forEach%28function%28symbol%29%7B%0A//%20%20%20%20%20%20%20%20%20var%20menuItem%3Ddocument.createElement%28%22menuitem%22%29%3B%0A//%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2Csymbol%29%3B%0A//%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%3D%2212px%22%3B%20//%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A//%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2CinsertText%2Cfalse%29%3B%0A//%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%7D%29%3B%0A//%0A//%20%20%20%20%20%20menuPopup.openPopup%28this%2C-1%2C-1%2C%22popup%22%2C%22bottomleft%22%2C%22topleft%22%29%3B%7D%0A//%20%20%20%20else%20if%28e.button%3D%3D0%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21e.ctrlKey%20%26%26%20e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%29%29%7B%0A//%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3Bif%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%7D%0A//%0A//%20%20%20%20else%20if%28%28e.button%3D%3D1%20%7C%7C%20%28e.button%3D%3D0%26%26e.ctrlKey%29%29%20%26%26%28%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%29%7Bcustombuttons.clearPrefs%28symbName%29%3B%7D%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C//mbMouse%28%29%3B%0A//%20%20%20%20else%20if%28%28e.button%3D%3D1%20%7C%7C%20%28e.button%3D%3D0%26%26e.ctrlKey%29%29%20%26%26%20%28e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%29%7Balert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%7D%0A//%0A//%20%20%20%20else%20if%28e.button%3D%3D2%20%26%26%20%21e.ctrlKey%26%26%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%7BstartProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%7D%20%20%20%20%7D%3B%0A//%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A//this.oncontextmenu%3Dfunction%28e%29%7B%0A//%20%20%20%20if%28e.button%3D%3D2%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21e.ctrlKey%26%26%21e.shiftKey%26%26%21e.altKey%26%26%21e.metaKey%29%7Be.preventDefault%28%29%3Be.stopPropagation%28%29%3B%7D%7D%3B%0A//%20%20%20%20//%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A//%0A//%0A//function%20startProcess%28path%2Cargs%29%7Bvar%20file%3DComponents.classes%5B%22@mozilla.org/file/local%3B1%22%5D%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A//%20%20%20%20%20file.initWithPath%28path%29%3B%0A//%20%20%20%20%20%20%20%20%20%20%20%20if%28file.exists%28%29%29%7Bvar%20process%3DComponents.classes%5B%22@mozilla.org/process/util%3B1%22%5D%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A//%20%20%20%20%20%20process.init%28file%29%3Bprocess.run%28false%2Cargs%2Cargs.length%29%3B%7D%20else%20custombuttons.%20alertBox%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2Cpath%29%3B%7D%3B%0A//%0A////this.type%3D%22menu%22%3B%0A//%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0A//function%20insertText%28%29%7B%20%0A//%20%20%20var%20text%3Dthis.label%3B%0A//%20%20%20var%20cmd%3D%22cmd_insertText%22%3B%0A//%20%20%20var%20controller%3Ddocument.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A//%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%7B%0A//%20%20%20%20%20%20%20%20var%20controller%3Dcontroller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A//%20%20%20%20%20%20%20%20var%20params%3DComponents.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A//%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2Ctext%29%3B%0A//%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2Cparams%29%3B%7D%7D%3B%0A%0A%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
Там вроде дело в самом CustomButtons, точнее в обходе. Кто-то говорил здесь об этом.
Отредактировано func4ptch4 (03-08-2018 10:36:17)
Отсутствует
Подскажите, как превратить формат JSON в удобочитаемый вид?
Поясню. Я делаю xmlhttp запрос и получаю ответ в виде JSON (можно на выбор получить в виде XML документа).
Как сделать, чтобы этот ответ выглядел вот так
На картинке тоже JSON, но он представлен в привычном для чтения виде.
Отсутствует
Ferguss114 пишет: Подскажите, как превратить формат JSON в удобочитаемый вид?
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
Подскажите, как превратить формат JSON в удобочитаемый вид?
Отсутствует
Я просто копернул и добавил в тот код, вот бы кто еще почистил его от лишнего.
Выделить кодКод:
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%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Indomito%20%u0438%20Difabor-%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434-%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28Firefox%29%20%u043E%u044211.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0Avar%20delay%3D600%2Carray%3D%5B%5D%2CsymbList%2CmyID%3D_id%2CsymbName%3DmyID+%22.symbols%22%2Cmynum%3D0%3B%0A///var%20symbListOrig%3D%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%0A%0Athis.onmousedown%3Dfunction%28event%29%7Bthis._mouseDownTime%3DDate.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%21%3D0%29return%3B%0A%20%20%20%20//if%28event.button%3D%3D2%29this._mouseDownTime%3DDate.now%28%29%3B%0A%20%20%20%20//%7D%3B%0A%0Athis.tooltipText%3D%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%22%3B%0A%0Athis.onclick%3Dfunction%28event%29%7B%0A%20%20%20%20symbList%3D%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%3D%3D0%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%3DsymbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%3Ddocument.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%28node%20%26%26%20node.parentNode%29%20node.parentNode.removeChild%28node%29%3B%20//%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%3Ddocument.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%3Dthis.id+%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%7B%0A%20%20%20%20%20%20%20%20%20var%20menuItem%3Ddocument.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2Csymbol%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%3D%2212px%22%3B%20//%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2CinsertText%2Cfalse%29%3B%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%7D%29%3B%0A%0A%20%20%20%20%20%20menuPopup.openPopup%28this%2C-1%2C-1%2C%22popup%22%2C%22bottomleft%22%2C%22topleft%22%29%3B%7D%0A%20%20%20%20else%20if%28event.button%3D%3D0%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28%28event.button%3D%3D1%20%7C%7C%20%28event.button%3D%3D0%26%26event.ctrlKey%29%29%20%26%26%20%28%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%29%7B%0A%20%20%20%20%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28%28event.button%3D%3D1%20%7C%7C%20%28event.button%3D%3D0%26%26event.ctrlKey%29%29%20%26%26%20%28event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%29%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%3D%3D2%20%26%26%20%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%7B%0A%20%20%20%20%20%20%20%20//%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%3Dfunction%28event%29%7B%0A%20%20%20%20if%28event.button%3D%3D2%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%21event.ctrlKey%26%26%21event.shiftKey%26%26%21event.altKey%26%26%21event.metaKey%29%7B%0A%20%20%20%20%20%20%20%20//%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3Bevent.stopPropagation%28%29%3B%7D%7D%3B%0A%0Afunction%20startProcess%28path%2Cargs%29%7B%0A%20%20%20%20var%20file%3DComponents.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%7B%0A%20%20%20%20%20%20%20var%20process%3DComponents.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2Cargs%2Cargs.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2Cpath%29%3B%7D%3B%0A%0A//this.type%3D%22menu%22%3B%0Athis.type%20%21%3D%20%22menu%22%20%3F%20this.type%20%3D%20%22menu%22%20%3A%20%28popup%20%3D%3E%20%7B%0A%0A%20%20%20%20var%20symbols%20%3D%20%22%A4%20%A6%20%A7%20%A9%20%AB%20%BB%20%AC%20%AE%20%B0%20%B1%20%B5%20%B6%20%u2014%20%u2018%20%u2019%20%u201C%20%u201D%20%u2022%20%u2030%20%u2039%20%u203A%20%u2122%20%u2026%22%3B%0A%20%20%20%20%0A%20%20%20%20var%20inserter%20%3D%20%7B%0A%20%20%20%20%20%20%20%20get%20docShell%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.docShell%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.docShell%20%3D%20%22docShell%22%20in%20document%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20document.docShell%20instanceof%20Ci.nsIDocShell%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20document.docShell%20%3A%20window.docShell%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20get%20prefix%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20delete%20this.prefix%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20this.prefix%20%3D%20%60data%3A%2C%28%24%7Bthis.insertText%7D%29%28%60%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insertText%3A%20function%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.docShell.isCommandEnabled%28%22cmd_insertText%22%29%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.docShell.doCommandWithParams%28%22cmd_insertText%22%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20insert%28text%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20document.activeElement%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%21br%20%7C%7C%20br.localName%20%21%3D%20%22browser%22%20%7C%7C%20%21br.isRemoteBrowser%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20this.insertText%28text%29%20%3A%20br.messageManager.loadFrameScript%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.prefix%20+%20encodeURIComponent%28text.toSource%28%29%29%20+%20%22%29%3B%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.onmousedown%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.button%29%20return%3B%0A%20%20%20%20%20%20%20%20popup.setAttribute%28%22oncommand%22%2C%20%22inserter.insert%28event.target.label%29%3B%22%29%3B%0A%20%20%20%20%20%20%20%20popup.inserter%20%3D%20inserter%3B%0A%20%20%20%20%20%20%20%20var%20df%20%3D%20document.createDocumentFragment%28%29%3B%0A%20%20%20%20%20%20%20%20for%28var%20sym%20of%20symbols.split%28%22%20%22%29%29%20df.appendChild%28%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22menuitem%22%29%0A%20%20%20%20%20%20%20%20%29.setAttribute%28%22label%22%2C%20sym%29%3B%0A%20%20%20%20%20%20%20%20popup.append%28df%29%3B%0A%20%20%20%20%20%20%20%20this.onmousedown%20%3D%20null%3B%0A%20%20%20%20%7D%0A%7D%29%28this.appendChild%28document.createElement%28%22menupopup%22%29%29%29%3B%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%7B%20%0A%20%20%20var%20text%3Dthis.label%3B%0A%20%20%20var%20cmd%3D%22cmd_insertText%22%3B%0A%20%20%20var%20controller%3Ddocument.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%7B%0A%20%20%20%20%20%20%20%20var%20controller%3Dcontroller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%3DComponents.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2Ctext%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2Cparams%29%3B%7D%7D%3B%0A%0A%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
На 57.0.4, к сожалению, добавляет символы только в адресную строку и строку поиска. В текстовых полях страниц Интернета по-прежнему не фурычит Может, кто подправит?
Отсутствует
у мну на 57.0.4 такое работает
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%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEADQ0AAAEAIAAAAwAAFgAAACgAAAANAAAAGgAAAAEAIAAAAAAA2AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAVwAAACMAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAAEoAAAAMAAAAQgAAAOQAAACiAAAAAgAAABcAAABKAAAAVwAAADsAAAAHAAAAGwAAANcAAAC7AAAAFwAAAAsAAACHAAAA8QAAAJ0AAACeAAAA/QAAAP8AAADvAAAAhAAAAL8AAADrAAAAXwAAAAQAAAAAAAAABgAAAJMAAAD/AAAA7AAAAKUAAACHAAAAvQAAAPcAAAD/AAAAYQAAAAAAAAAAAAAAAwAAAAsAAACXAAAA9gAAAF8AAAAAAAAAAQAAAAwAAACOAAAA+QAAAGAAAAAAAAAAAwAAAAAAAAA1AAAA5gAAAK8AAAACAAAABgAAAA4AAAAAAAAAJQAAAOAAAAC1AAAADwAAAAAAAAAAAAAASwAAAPMAAACIAAAAAAAAAAkAAAAAAAAABgAAAAMAAAC8AAAAzgAAACQAAAAAAAAAAAAAAEAAAADuAAAAnAAAAAAAAAALAAAACgAAAAMAAAARAAAAzwAAAMEAAAAXAAAAAAAAAAAAAAAUAAAArwAAAOMAAAA8AAAAAAAAAAgAAAAAAAAAYQAAAP8AAAB+AAAAAgAAAAAAAAAEAAAAAQAAAHwAAAD/AAAAzAAAAG4AAABZAAAAggAAAOMAAAD/AAAASgAAAAAAAAAFAAAAAAAAAFIAAADlAAAAygAAAMYAAAD/AAAA+AAAAP8AAAC8AAAA3AAAAMoAAAApAAAAAAAAADoAAADjAAAAyQAAACEAAAAuAAAAeAAAAH8AAABqAAAAIQAAAD8AAADqAAAAvQAAAB4AAAA4AAAAhQAAADoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAWQAAAIUAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%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*/%0A%0A//%20Indomito%20%u0438%20Difabor%20-%20%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434%20-%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28%20Firefox%20%29%20%u043E%u0442%2011.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0A%0Avar%20delay%20%3D%20600%2C%20array%20%3D%20%5B%5D%2C%20symbList%2C%20myID%20%3D%20_id%2C%20symbName%20%3D%20myID%20+%20%22.symbols%22%2Cmynum%3D0%3B%0Avar%20symbListOrig%20%3D%20%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%20%0A%0Athis.onmousedown%20%3D%20function%28event%29%20%7Bthis._mouseDownTime%20%3D%20Date.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%20%21%3D%200%29%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20//if%28event.button%20%3D%3D%202%29%20%20this._mouseDownTime%20%3D%20Date.now%28%29%3B%0A//%7D%3B%0A%0Athis.tooltipText%20%3D%20%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22%20+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%20%5Cn%22%20+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A%0A/*%0Athis.tooltipText%20%3D%20%0A%22Left%20Short%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22%20+%20%0A%22Left%20Long%20Or%20Left+Shift%20%20%20%20%20%20%20%3D%3E%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20Or%20Left+Ctrl%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22%28Middle%20Or%20Left+Ctrl%29+Shift%20%3D%3E%20%u041C%u0435%u0440%u044F%u0442%u044C%20%u0434%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%20%u043A%u043B%u0438%u043A%u0430%5Cn%22%20+%0A%22Right%20Short%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%20%0A%22Right%20Long%20Or%20Right+Shift%20%3D%3E%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A*/%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20symbList%20%3D%20%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%20%3D%20symbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%20%3D%20document.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%20%28%20node%20%26%26%20node.parentNode%20%29%20node.parentNode.removeChild%28node%29%3B%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%20%3D%20this.id%20+%20%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20var%20menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20symbol%20%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%20%3D%20%2212px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20insertText%2C%20false%29%3B%20%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%7D%20%20%0A%20%20%20%20else%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%20%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Afunction%20startProcess%28path%2C%20args%29%20%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20%0A%7D%3B%0A%0A//this.type%20%3D%20%22menu%22%3B%20%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%20%7B%20%0A%20%20%20var%20text%20%3D%20this.label%3B%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%20%28%20controller%20%26%26%20controller.isCommandEnabled%28cmd%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Acustombutton%3A//%253C%253Fxml%2520version%253D%25221.0%2522%2520encoding%253D%2522UTF-8%2522%253F%253E%250D%250A%253Ccustombutton%2520xmlns%253Acb%253D%2522http%253A//xsms.nm.ru/custombuttons/%2522%253E%250A%2520%2520%253Cname%253EInsert%2520special%2520symbol%253C/name%253E%250A%2520%2520%253Cimage%253E%253C%2521%255BCDATA%255Bdata%253Aimage/png%253Bbase64%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%253D%255D%255D%253E%253C/image%253E%250A%2520%2520%253Cmode%253E0%253C/mode%253E%250A%2520%2520%253Cinitcode%253E%253C%2521%255BCDATA%255B/*Initialization%2520Code*/%250A%250A//%2520Indomito%2520%25u0438%2520Difabor%2520-%2520%25u0432%25u0435%25u0440%25u0441%25u0438%25u044F%2520%25u043E%25u0442%252027.05.2014%250A//%2520%25u0417%25u0430%2520%25u043E%25u0441%25u043D%25u043E%25u0432%25u0443%2520%25u0432%25u0437%25u044F%25u0442%2520%25u043A%25u043E%25u0434%2520-%2520%25u0412%25u0441%25u0442%25u0430%25u0432%25u043A%25u0430%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u0430%2520%25u0432%2520%25u0442%25u0435%25u043A%25u0441%25u0442%25u043E%25u0432%25u043E%25u0435%2520%25u043F%25u043E%25u043B%25u0435%2528%2520Firefox%2520%2529%2520%25u043E%25u0442%252011.05.2013%2520%25u0430%25u0432%25u0442%25u043E%25u0440%2520bunda1%250A%250Avar%2520delay%2520%253D%2520600%252C%2520array%2520%253D%2520%255B%255D%252C%2520symbList%252C%2520myID%2520%253D%2520_id%252C%2520symbName%2520%253D%2520myID%2520+%2520%2522.symbols%2522%252Cmynum%253D0%253B%250Avar%2520symbListOrig%2520%253D%2520%2522%25A4%252C%25A6%252C%25A7%252C@%252C%25A9%252C%25AB%252C%25BB%252C%25AC%252C%25AE%252C%25B0%252C%25B1%252C%25B5%252C%25B6%252C%25u2014%252C%25u2018%252C%25u2019%252C%25u201C%252C%25u201D%252C%25u2022%252C%25u2030%252C%25u2039%252C%25u203A%252C%25u2122%2522%253B%2520%250A%250Athis.onmousedown%2520%253D%2520function%2528event%2529%2520%257Bthis._mouseDownTime%2520%253D%2520Date.now%2528%2529%253B%257D%253B%250A%2520%2520%2520%2520//if%2528e.button%2520%2521%253D%25200%2529%2520%2520%2520%2520%2520%2520%2520%2520return%253B%250A%2520%2520%2520%2520//if%2528event.button%2520%253D%253D%25202%2529%2520%2520this._mouseDownTime%2520%253D%2520Date.now%2528%2529%253B%250A//%257D%253B%250A%250Athis.tooltipText%2520%253D%2520%250A%2522%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25u0412%25u0441%25u0442%25u0430%25u0432%25u0438%25u0442%25u044C%2520%25u0441%25u043F%25u0435%25u0446%25u0438%25u0430%25u043B%25u044C%25u043D%25u044B%25u0439%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%255Cn%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%25u2014%255Cn%2522%2520+%250A%2522Left%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25u2014%2520%2520%2520%25u0412%25u0441%25u0442%25u0430%25u0432%25u043A%25u0430%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u0430%2520%25u0438%25u0437%2520%25u0441%25u043F%25u0438%25u0441%25u043A%25u0430%2520%255Cn%2522%2520+%250A%2522Left%2520Long%2520%2520%2520%2520%2520%25u2014%2520%2520%2520%25u0420%25u0435%25u0434%25u0430%25u043A%25u0442%25u0438%25u0440%25u043E%25u0432%25u0430%25u043D%25u0438%25u0435%2520%25u0441%25u043F%25u0438%25u0441%25u043A%25u0430%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%255Cn%2522%2520+%250A%2522Middle%2520%2520%2520%2520%2520%2520%2520%2520%2520%25u2014%2520%2520%2520%25u0412%25u043E%25u0437%25u0432%25u0440%25u0430%25u0442%2520%25u043A%2520%25u0438%25u0441%25u0445%25u043E%25u0434%25u043D%25u043E%25u043C%25u0443%2520%25u0441%25u043F%25u0438%25u0441%25u043A%25u0443%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%255Cn%2522%2520+%250A%2522Right%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25u2014%2520%2520%2520%25u0417%25u0430%25u043F%25u0443%25u0441%25u043A%2520%25u0442%25u0430%25u0431%25u043B%25u0438%25u0446%25u044B%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%2520Windows%255Cn%2522%2520+%250A%2522Right%2520Long%2520%2520%25u2014%2520%2520%2520%25u0421%25u0442%25u0430%25u043D%25u0434%25u0430%25u0440%25u0442%25u043D%25u043E%25u0435%2520%25u041C%25u0435%25u043D%25u044E%2520%25u041A%25u043D%25u043E%25u043F%25u043A%25u0438%2520%2522%253B%250A%250A/*%250Athis.tooltipText%2520%253D%2520%250A%2522Left%2520Short%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%253D%253E%2520%25u0412%25u0441%25u0442%25u0430%25u0432%25u043A%25u0430%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u0430%2520%25u0438%25u0437%2520%25u0441%25u043F%25u0438%25u0441%25u043A%25u0430%255Cn%2522%2520+%2520%250A%2522Left%2520Long%2520Or%2520Left+Shift%2520%2520%2520%2520%2520%2520%2520%253D%253E%2520%25u0420%25u0435%25u0434%25u0430%25u043A%25u0442%25u0438%25u0440%25u043E%25u0432%25u0430%25u043D%25u0438%25u0435%2520%25u0441%25u043F%25u0438%25u0441%25u043A%25u0430%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%255Cn%2522%2520+%250A%2522Middle%2520Or%2520Left+Ctrl%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%253D%253E%2520%25u0412%25u043E%25u0437%25u0432%25u0440%25u0430%25u0442%2520%25u043A%2520%25u0438%25u0441%25u0445%25u043E%25u0434%25u043D%25u043E%25u043C%25u0443%2520%25u0441%25u043F%25u0438%25u0441%25u043A%25u0443%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%255Cn%2522%2520+%250A%2522%2528Middle%2520Or%2520Left+Ctrl%2529+Shift%2520%253D%253E%2520%25u041C%25u0435%25u0440%25u044F%25u0442%25u044C%2520%25u0434%25u043B%25u0438%25u0442%25u0435%25u043B%25u044C%25u043D%25u043E%25u0441%25u0442%25u044C%2520%25u043A%25u043B%25u0438%25u043A%25u0430%255Cn%2522%2520+%250A%2522Right%2520Short%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%253D%253E%2520%25u0417%25u0430%25u043F%25u0443%25u0441%25u043A%2520%25u0442%25u0430%25u0431%25u043B%25u0438%25u0446%25u044B%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%2520Windows%255Cn%2522%2520+%2520%250A%2522Right%2520Long%2520Or%2520Right+Shift%2520%253D%253E%2520%25u0421%25u0442%25u0430%25u043D%25u0434%25u0430%25u0440%25u0442%25u043D%25u043E%25u0435%2520%25u041C%25u0435%25u043D%25u044E%2520%25u041A%25u043D%25u043E%25u043F%25u043A%25u0438%2520%2522%253B%250A*/%250A%250Athis.onclick%2520%253D%2520function%2528event%2529%2520%257B%250A%2520%2520%2520%2520symbList%2520%253D%2520%2528custombuttons.isPref%2528symbName%2529%2529%253F%2520unescape%2528custombuttons.getPrefs%2528symbName%2529%2529%253A%2520symbListOrig%253B%250A%2520%2520%2520%2520if%2528event.button%2520%253D%253D%25200%2520%2526%2526%2520%2528%2528Date.now%2528%2529%2520-%2520this._mouseDownTime%2529%2520%253C%2520delay%2529%2520%2526%2526%2520%2521event.ctrlKey%2520%2526%2526%2520%2521event.shiftKey%2520%2526%2526%2520%2521event.altKey%2520%2526%2526%2520%2521event.metaKey%2529%257B%250A%2520%2520%2520%2520%2520%2520array%2520%253D%2520symbList.split%2528%2522%252C%2522%2529%253B%250A%2520%2520%2520%2520%2520%2520var%2520node%2520%253D%2520document.getElementById%2528this.id%2520+%2520%2522-menuPopup%2522%2529%253B%250A%2520%2520%2520%2520%2520%2520if%2520%2528%2520node%2520%2526%2526%2520node.parentNode%2520%2529%2520node.parentNode.removeChild%2528node%2529%253B%2520//%2520%25u0431%25u043B%25u043E%25u043A%25u0438%25u0440%25u043E%25u0432%25u0430%25u0442%25u044C%2520%25u0434%25u0443%25u0431%25u043B%25u0438%25u0440%25u043E%25u0432%25u0430%25u043D%25u0438%25u0435%2520%25u043C%25u0435%25u043D%25u044E%250A%250A%2520%2520%2520%2520%2520%2520var%2520menuPopup%2520%253D%2520document.getElementById%2528%2522mainPopupSet%2522%2529.appendChild%2528document.createElement%2528%2522menupopup%2522%2529%2529%253B%250A%2520%2520%2520%2520%2520%2520menuPopup.id%2520%253D%2520this.id%2520+%2520%2522-menuPopup%2522%253B%250A%250A%2520%2520%2520%2520%2520%2520array.forEach%2528function%2528symbol%2529%2520%257B%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520var%2520menuItem%2520%253D%2520document.createElement%2528%2522menuitem%2522%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520menuItem.setAttribute%2528%2522label%2522%252C%2520symbol%2520%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520menuItem.style.fontSize%2520%253D%2520%252212px%2522%253B%2520//%2520%25u0440%25u0430%25u0437%25u043C%25u0435%25u0440%2520%25u0448%25u0440%25u0438%25u0444%25u0442%25u0430%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520menuItem.addEventListener%2528%2522command%2522%252C%2520insertText%252C%2520false%2529%253B%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520menuPopup.appendChild%2528menuItem%2529%253B%250A%2520%2520%2520%2520%2520%2520%257D%2529%253B%250A%2520%2520%2520%2520%2520%2520menuPopup.showPopup%2528this%252C%2520-1%252C%2520-1%252C%2520%2522popup%2522%252C%2520%2522bottomleft%2522%252C%2520%2522topleft%2522%2529%253B%250A%2520%2520%2520%2520%257D%2520%2520%250A%2520%2520%2520%2520else%2520if%2528event.button%2520%253D%253D%25200%2520%2526%2526%2520%2528%2528%2528Date.now%2528%2529%2520-%2520this._mouseDownTime%2529%2520%253E%253D%2520delay%2529%257C%257C%2528%2521event.ctrlKey%2520%2526%2526%2520event.shiftKey%2520%2526%2526%2520%2521event.altKey%2520%2526%2526%2520%2521event.metaKey%2529%2529%2529%2520%257B%250A%2520%2520%2520%2520%2520%2520var%2520a%253Dprompt%2528%2522%25u0420%25u0440%25u0435%25u0434%25u0430%25u043A%25u0442%25u0438%25u0440%25u043E%25u0432%25u0430%25u0442%25u044C%2520%25u044D%25u0442%25u0443%2520%25u0441%25u0442%25u0440%25u043E%25u043A%25u0443%252C%2520%25u0432%25u0441%25u0442%25u0430%25u0432%25u043B%25u044F%25u044F%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u044B%2520%25u0438%25u043B%25u0438%2520%25u0433%25u0440%25u0443%25u043F%25u043F%25u044B%2520%25u0441%25u0438%25u043C%25u0432%25u043E%25u043B%25u043E%25u0432%2520%25u0447%25u0435%25u0440%25u0435%25u0437%2520%25u0437%25u0430%25u043F%25u044F%25u0442%25u0443%25u044E%253A%2522%252CsymbList%2529%253B%250A%2520%2520%2520%2520%2520%2520if%2520%2528a%2529%2520custombuttons.setPrefs%2528symbName%252Cescape%2528a%2529%2529%253B%2520%2520%2520%2520%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520else%2520if%2520%2528%2528event.button%2520%253D%253D%25201%2520%257C%257C%2520%2528event.button%2520%253D%253D%25200%2520%2526%2526%2520event.ctrlKey%2520%2529%2529%2520%2526%2526%2520%2528%2521event.shiftKey%2520%2526%2526%2520%2521event.altKey%2520%2526%2526%2520%2521event.metaKey%2529%2529%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520//%2520%25u0414%25u0435%25u0439%25u0441%25u0442%25u0432%25u0438%25u0435%2520%25u043F%25u0440%25u0438%2520%25u043A%25u043B%25u0438%25u043A%25u0435%2520%25u0421%25u041A%25u041C%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520//mbMouse%2528%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520custombuttons.clearPrefs%2528symbName%2529%253B%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520else%2520if%2520%2528%2528event.button%2520%253D%253D%25201%2520%257C%257C%2520%2528event.button%2520%253D%253D%25200%2520%2526%2526%2520event.ctrlKey%2520%2529%2529%2520%2526%2526%2520%2528event.shiftKey%2520%2526%2526%2520%2521event.altKey%2520%2526%2526%2520%2521event.metaKey%2529%2529%2520%257B%250A%2520%2520%2520%2520%2520alert%2528%2522%25u0414%25u043B%25u0438%25u0442%25u0435%25u043B%25u044C%25u043D%25u043E%25u0441%25u0442%25u044C%253A%2520%2522+%2528Date.now%2528%2529%2520-%2520this._mouseDownTime%2529+%2520%2522%25u043C%25u0441%2520%2522%2520+%2520mynum%2529%253B%250A%2520%2520%2520%2520%257D%250A%2520%2520%2520%2520else%2520if%2528event.button%2520%253D%253D%25202%2520%2526%2526%2520%2521event.ctrlKey%2520%2526%2526%2520%2521event.shiftKey%2520%2526%2526%2520%2521event.altKey%2520%2526%2526%2520%2521event.metaKey%2520%2526%2526%2520%2528%2528Date.now%2528%2529%2520-%2520this._mouseDownTime%2529%2520%253C%2520delay%2529%2529%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520//%2520%25u0414%25u0435%25u0439%25u0441%25u0442%25u0432%25u0438%25u0435%2520%25u043F%25u0440%25u0438%2520%25u043A%25u043B%25u0438%25u043A%25u0435%2520%25u041F%25u041A%25u041C%2520%25u0431%25u0435%25u0437%2520%25u043C%25u043E%25u0434%25u0438%25u0444%25u0438%25u043A%25u0430%25u0442%25u043E%25u0440%25u043E%25u0432%250A%2520%2520%2520%2520%2520%2520%2520%2520//if%2520%2528%2528Date.now%2528%2529%2520-%2520this._mouseDownTime%2529%2520%253C%2520delay%2529%2520startProcess%2528%2522C%253A%255C%255CWindows%255C%255Csystem32%255C%255Ccharmap.exe%2522%252C%255B%255D%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520startProcess%2528%2522C%253A%255C%255CWindows%255C%255Csystem32%255C%255Ccharmap.exe%2522%252C%255B%255D%2529%253B%250A%2520%2520%2520%2520%257D%250A%257D%253B%250Athis.oncontextmenu%2520%253D%2520function%2528event%2529%2520%257B%250A%2520%2520%2520%2520if%2528event.button%2520%253D%253D%25202%2520%2526%2526%2520%2528%2528Date.now%2528%2529%2520-%2520this._mouseDownTime%2529%2520%253C%2520delay%2529%2520%2520%2526%2526%2520%2521event.ctrlKey%2520%2526%2526%2520%2521event.shiftKey%2520%2526%2526%2520%2521event.altKey%2520%2526%2526%2520%2521event.metaKey%2529%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520//%2520%25u0411%25u043B%25u043E%25u043A%25u0438%25u0440%25u0443%25u0435%25u043C%2520%25u043A%25u043E%25u043D%25u0442%25u0435%25u043A%25u0441%25u0442%25u043D%25u043E%25u0435%2520%25u043C%25u0435%25u043D%25u044E%2520%25u043F%25u0440%25u0438%2520%25u043A%25u043B%25u0438%25u043A%25u0435%2520%25u041F%25u041A%25u041C%2520%25u0431%25u0435%25u0437%2520%25u043C%25u043E%25u0434%25u0438%25u0444%25u0438%25u043A%25u0430%25u0442%25u043E%25u0440%25u043E%25u0432%250A%2520%2520%2520%2520%2520%2520%2520%2520event.preventDefault%2528%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520event.stopPropagation%2528%2529%253B%250A%2520%2520%2520%2520%257D%250A%257D%253B%250A%250Afunction%2520startProcess%2528path%252C%2520args%2529%2520%257B%250A%2520%2520%2520%2520var%2520file%2520%253D%2520Components.classes%255B%2522@mozilla.org/file/local%253B1%2522%255D%250A%2520%2520%2520%2520%2520%2520%2520%2520.createInstance%2528Components.interfaces.nsILocalFile%2529%253B%250A%2520%2520%2520%2520%2520file.initWithPath%2528path%2529%253B%250A%2520%2520%2520%2520if%2528file.exists%2528%2529%2529%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520var%2520process%2520%253D%2520Components.classes%255B%2522@mozilla.org/process/util%253B1%2522%255D%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520.createInstance%2528Components.interfaces.nsIProcess%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520process.init%2528file%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520process.run%2528false%252C%2520args%252C%2520args.length%2529%253B%250A%2520%2520%2520%2520%2520%2520%257D%2520else%2520custombuttons.%2520alertBox%2520%2528%2522%25u0424%25u0430%25u0439%25u043B%2520%25u043D%25u0435%2520%25u043D%25u0430%25u0439%25u0434%25u0435%25u043D%2522%252C%2520path%2529%253B%2520%250A%257D%253B%250A%250A//this.type%2520%253D%2520%2522menu%2522%253B%2520%250A%250A//%2520%25u0412%25u0441%25u0442%25u0430%25u0432%25u0438%25u0442%25u044C%2520%25u0442%25u0435%25u043A%25u0441%25u0442%2520%25u0432%2520%25u0442%25u0435%25u043A%25u0441%25u0442%25u043E%25u0432%25u043E%25u0435%2520%25u043F%25u043E%25u043B%25u0435%2520............%250Afunction%2520insertText%2528%2529%2520%257B%2520%250A%2520%2520%2520var%2520text%2520%253D%2520this.label%253B%250A%2520%2520%2520var%2520cmd%2520%253D%2520%2522cmd_insertText%2522%253B%250A%2520%2520%2520var%2520controller%2520%253D%2520document.commandDispatcher.getControllerForCommand%2528cmd%2529%253B%250A%2520%2520%2520if%2520%2528%2520controller%2520%2526%2526%2520controller.isCommandEnabled%2528cmd%2529%2520%2529%2520%257B%250A%2520%2520%2520%2520%2520%2520%2520%2520var%2520controller%2520%253D%2520controller.QueryInterface%2528Components.interfaces.nsICommandController%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520var%2520params%2520%253D%2520Components.classes%255B%2522@mozilla.org/embedcomp/command-params%253B1%2522%255D.createInstance%2528Components.interfaces.nsICommandParams%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520params.setStringValue%2528%2522state_data%2522%252C%2520text%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520controller.doCommandWithParams%2528cmd%252C%2520params%2529%253B%250A%2520%2520%2520%2520%2520%2520%2520%2520%257D%250A%257D%253B%255D%255D%253E%253C/initcode%253E%250A%2520%2520%253Ccode%253E%253C%2521%255BCDATA%255B/*CODE*/%255D%255D%253E%253C/code%253E%250A%2520%2520%253Caccelkey%253E%253C%2521%255BCDATA%255B%255D%255D%253E%253C/accelkey%253E%250A%2520%2520%253Chelp%253E%253C%2521%255BCDATA%255B%255D%255D%253E%253C/help%253E%250A%2520%2520%253Cattributes/%253E%250A%253C/custombutton%253E%0A%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
Отсутствует