>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >Можно ли создать кнопку которая бы могла предлагать вставить текст. http://forum.mozilla-russia.org/viewtopic.php?id=53473 |
SendInfo > 26-01-2012 22:54:17 |
Одним словом автотекст, набор слов которые часто используемые вносится в базу далее при нажатии выбирается и вставляется в текстовую форму любого сайта. |
okkamas_knife > 26-01-2012 23:36:03 |
SendInfo в инициализацию Выделить код Код:function pasting(){ var open=gettxt; var theBox = document.commandDispatcher.focusedElement; var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selectionLen = endPos - startPos var oPosition = theBox.scrollTop; var oHeight = theBox.scrollHeight; var text=theBox.value.substring(0,startPos); var nHeight = theBox.scrollHeight - oHeight; text +=open; text +=theBox.value.substring(endPos, theBox.value.length); theBox.value = text; theBox.selectionStart = endPos + open.length; theBox.selectionEnd = endPos + open.length - selectionLen; theBox.scrollTop = oPosition + nHeight; }; var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" onclick="this. parentNode. handleClick (event);"> <menuitem label="пункт1" class="menuitem-iconic" image="" cb:url="текст1"/> <menuitem label="пункт2" class="menuitem-iconic" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAACKElEQVR42qWTT0gUYRjGfzOz68y2M7s7zjq7o0t/KIUIojpEpyiJwjxYWUF0sUPdq0OB0CXsUlAnIQ8FSX/oj2TQpS7RJYrEoEgTA8MIJMmDKNXqPh1mAwsrocNzePn4fu/3Pu/3IIn/0a8FGIBrwXbb4KgFGwDXAM+AFGD8EQAkDNhUMHm416F82kX7bL41mAyuMhkNTG4A4aIAYnprxuDdpQy65aPeHBrIo+NpdCBrq5S0JoH9v78CIFk9GC2Z6E2IurPoeR71ZNEZF52qz2q9nymvSXDfhBbAXwhoAC4AU00W+lyM1e+jThddy6HbganeYkoPaqmcSDO0LkmPFYNqAEpAnw0zHSn0PUJDdeh9iIZD9LgWtdroaYAq9ehLET0KmNuS5FX1Ls3AzcDk61iIJgtxV9XHuphBSdDGBOrz0VyEPhVQu8N8It4STUC3AVODefQhRIcdNBLGgOs5tNxCQdJS5KXVkUmo30dnPZQ22AGQAbqAieYaNBuhJwH6WED9tWgmQnd9dM9HbTZamcvKc92K4zhjwAqqRrQAA0ULTRRQOYq96HTRQYfKNpuJvMnrnTYj5zzGlxk8AzoA5+cqIuDq2gQaL8RmlSN0x0d1JmPAEcCrjrsbWL7YTzzWaFF+kY8B00V0Mo3qTLoA859ZAIJdDpfPe0wPh8yPh6jNZtaG9iWHqWQRFUwOba3hyh6btw0mL4HNSwYsCFWYgEYDVgOpvwF+AIJCpbvsZMSPAAAAAElFTkSuQmCC" cb:url="текст2"/> <menuitem label="пункт3" class="menuitem-iconic" image="" cb:url="текст3"/> </menupopup>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); gettxt=url; if (event. button == 0) pasting(); else if (event. button == 1) gBrowser. addTab (url); this. open = false; }; var that = this; this.hideDropMarker = function() { var dropMarker = document.getAnonymousElementByAttribute(that, "class", "toolbarbutton-menu-dropmarker"); if (dropMarker) { dropMarker.setAttribute("hidden", "true"); } else { setTimeout(that.hideDropMarker, 10); } } this.hideDropMarker(); |
SendInfo > 26-01-2012 23:52:34 |
okkamas_knife пишет
Спасибо большое отлично работает. |
okkamas_knife > 27-01-2012 02:54:31 |
SendInfo пишет
ну элементарно же |
SendInfo > 27-01-2012 17:43:58 |
okkamas_knife пишет
Выделить код Код:/*Initialization Code*/ function pasting(){ var open=gettxt; var theBox = document.commandDispatcher.focusedElement; var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selectionLen = endPos - startPos var oPosition = theBox.scrollTop; var oHeight = theBox.scrollHeight; var text=theBox.value.substring(0,startPos); var nHeight = theBox.scrollHeight - oHeight; text +=open; text +=theBox.value.substring(endPos, theBox.value.length); theBox.value = text; theBox.selectionStart = endPos + open.length; theBox.selectionEnd = endPos + open.length - selectionLen; theBox.scrollTop = oPosition + nHeight; }; var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" onclick="this. parentNode. handleClick (event);"> <menuitem label="Доброго времени суток" class="menuitem-iconic" image="" cb:url="Доброго времени суток/> <menuitem label="Добрый день" class="menuitem-iconic" cb:url="Добрый день"/> <menuitem label="Добрый вечер" class="menuitem-iconic" image="" cb:url="Добрый вечер"/> <menuitem label="Добрый вечер" class="menuitem-iconic" image="" cb:url="Добрый вечер"/> </menupopup>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); gettxt=url; if (event. button == 0) pasting(); else if (event. button == 1) gBrowser. addTab (url); this. open = false; }; var that = this; this.hideDropMarker = function() { var dropMarker = document.getAnonymousElementByAttribute(that, "class", "toolbarbutton-menu-dropmarker"); if (dropMarker) { dropMarker.setAttribute("hidden", "true"); } else { setTimeout(that.hideDropMarker, 10); } } this.hideDropMarker(); Попробовал добавить 3 слова,но слова не добавились. Просмотрите где ошибка в коде? |
okkamas_knife > 27-01-2012 17:50:00 |
SendInfo пишет
cb:url="Доброго времени суток"/> |
SendInfo > 27-01-2012 18:27:33 |
Спасибо, точно |