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

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();

okkamas_knife пишет

в инициализацию

Спасибо большое отлично работает.
Но как добавлять в базу слова и желательно без лишних изображений.

SendInfo пишет

Но как добавлять в базу слова и желательно без лишних изображений.

ну элементарно же
просто копируй кусок
от <menuitem label  до    cb:url="текст1"/>
иконку во втором пункте я оставил для примера

okkamas_knife пишет

просто копируй кусок
от <menuitem label  до    cb:url="текст1"/>

Выделить код

Код:

/*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 слова,но слова не добавились. Просмотрите где ошибка в коде?

SendInfo пишет

Просмотрите где ошибка в коде?

cb:url="Доброго времени суток"/>
Кавычки!!

Спасибо, точно