Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№332614-12-2011 08:58:08

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8718
UA: Nightly 11.0

Re: Custom Buttons

[b пишет

okkamas_knife[/b]
]из такого куска
<iframe src="http://vk.com/video_ext.php?oid=55588330&id=161236641&hash=307de7f4c60719a3" width="607" height="360" frameborder="0"></iframe>
делает такой
http://vk.com/video_ext.php?oid=55588330&id=161236641&hash=307de7f4c60719a3
команда
var url=url.slice(13,-52);
для чтения из буфера обмена
используем
var url=readFromClipboard();
то есть кнопка берущая из буфера обмена тот код и открывающая в новой вкладке  обрезанный из того кода урл будет такой

Выделить код

Код:

var url=readFromClipboard();//считываем содержимое буфера обмена
var url=url.slice(13,-52); //отрезаем 13 символов сначала и 52 с конца
getBrowser (). selectedTab = getBrowser (). addTab (url);

по аналогии сделал для RuTube :)

Выделить код

Код:

var url=readFromClipboard();//считываем содержимое буфера обмена
var url=url.slice(15,-1); //отрезаем 15 символов сначала и 1 с конца
getBrowser (). selectedTab = getBrowser (). addTab (url);

под видео раскрываем "Ссылка и код" , копируем в буфер код из секции  "...для Li.Ru"

JKkx1.png

и затем жмём на кнопочку :)

... как и в случае с ВКонтакте  неуклюжий вариант , но всё же лучше чем ничего :sick:

Отсутствует

 

№332714-12-2011 17:25:49

Ste_pan
Участник
 
Группа: Members
Откуда: приморский край п.сибирцево
Зарегистрирован: 13-02-2011
Сообщений: 63
UA: Firefox 7.0

Re: Custom Buttons

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

скрытый текст
if(event. target.tagName=="toolbarbutton"){
var menu=this.firstChild.firstChild
if(menu. getAttribute('checked')=='true'){
var lang= menu. getAttribute ("value");
this. translate(lang)
return
}
if(menu.nextSibling. getAttribute('checked')=='true'){
var lang= menu.nextSibling. getAttribute ("value");
this. translate(lang)
return
}
var menu=menu.nextSibling.nextSibling.nextSibling
var lang= menu. getAttribute ("value");
this. translate(lang)
return
}

инициализация
скрытый текст
var menu =
<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       oncommand="this.parentNode.translate(event)">
       
    <menuitem type="radio" value="en|ru" label="en-ru"/>
    <menuitem type="radio" value="ru|en" label="ru-en"/>
      <menuseparator/>
   
    <menuitem type="radio" value="l" label="Словарь"/>
</menupopup>;
menu = custombuttonsUtils. makeXML (menu);


this. type = "menu-button";
this.orient = "horizontal";
this. appendChild (menu);



function getText(fl){
if(!!(fl)){
return Text(fl)
}
var doc = getBrowser (). contentDocument;
var tqa = document.commandDispatcher.focusedElement
if(tqa){
var as = tqa.value
var tre= as.length
if(tre > 0){
var sell = as.substring(tqa.selectionStart, tqa.selectionEnd);
var tre= sell.length
if(tre==0){
var fun=as
var fun=Text(fun)
return fun
}
else{
var fun=sell
var fun=Text(fun)
return fun
}}
}
var String =document. commandDispatcher. focusedWindow. getSelection (). toString ();
var tre0= String.length
if(tre0===0){
var searchbar = document.getElementById("searchbar");
var t=document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox").value
var tre= t.length
if(tre==0){
return
}
else{
var fun=t
var fun=Text(fun)
return fun
}}
var fun=String
var fun=Text(fun)
return fun

function Text(fun){
var n =0
for(;;){
var ring =fun.charCodeAt(n)
if(ring==32){
n++}
else{
var str=fun.slice(n)
var n1 = str.search(/ /)
if(n1==-1){
return str}
else{var stgr1=str.slice(0,n1)
return stgr1}
break;}}
}}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

this. onclick = function (event){
if ( event. shiftKey)
        return;
if (event. button == 2)
           {
           event. preventDefault ();
           event. stopPropagation ();
           var doc = getBrowser (). contentDocument;
   getBrowser (). loadURI
            (
                'http://translate.google.com/translate?u=' +
                doc. location. href +
                '&hl=' +
                'ru' +
                '&langpair=' +
                'auto|ru' +
                '&tbb=1' +
                (doc. charset? '&ie=' + doc. charset: ''),
                null,
                null
            );
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this. translate = function (e)
{
var translator = new cbTranslatorButton (getBrowser ());
if(e. target){
var lang = e. target. getAttribute ("value");}
else{
lang = e}
if(!(lang=='l')){

  var na_lang =lang.substring(3);
var s_lang = lang.substr(0,2);
}

translator. ujs_createWindow (lang,na_lang,s_lang)



};

var val = this. getAttribute ("id");
function cbTranslatorButton (browser)
{
    this. doc = browser. contentDocument;
    this. win = browser. contentDocument. defaultView;
}
cbTranslatorButton. prototype =
{
    doc: null,
    _frfme: null,
    win: null,
    toolbar: null,
    clse: null,
    frame: null,
    na_lang: null,
    s_lang: null,
    lang: null,
    grabX: 0,
    origX: 0,
    grabY: 0,
    origY: 0,
ajax_: function (url,anco)
    {
var doc = getBrowser (). contentDocument;
   
    xmlhttp = new XMLHttpRequest()
    xmlhttp.open('GET',url, false);
    xmlhttp.onreadystatechange = function(){     

    var html_t = xmlhttp.responseText
    var html_ = doc. createElement ('div');
    html_.innerHTML =html_t


    xmlhttp=null
    var TBODY_= html_.getElementsByClassName ("almost_half_cell")[0];

    anco. innerHTML =''

    anco. appendChild (TBODY_)


    }
    xmlhttp.send(null);
       
},
   
    getText: function ()
    {
var tqa = document.commandDispatcher.focusedElement

if(tqa){
var uy=tqa.tagName
var arr = [];
arr[0] ='html:input'
arr[1] ='INPUT'
arr[2] ='TEXTAREA'
var j = 0
for(var i=0;i<arr.length;i++)
    {if (uy==arr[i]){
    var j = 1
    break;}}
if (j==1)
{

var as = tqa.value
var sell = as.substring(tqa.selectionStart, tqa.selectionEnd);
if(sell){
return sell;}
return as }else{
var doc = getBrowser (). contentDocument;
var t = doc. defaultView. getSelection ();
if(t){
return t}
}}
var t = document. commandDispatcher. focusedWindow. getSelection (). toString ();
if(t){
return t}
var t = ''
var t = t. toString ();
return t}
,
    handleEvent: function (event)
    {
        switch (event. type)
        {
            case "mousedown":
                this. tbOnMouseDown (event);
                break;
            case "mousemove":
                this. tbOnMouseMove (event);
                break;
            case "mouseup":
                this. tbOnMouseUp (event);
                break;
            case "click":
                this. clseOnClick (event);
                break;
            case "load":
                this. frameOnLoad (event);
                break;
        }
    },
   
    tbOnMouseMove: function (event)
    {
        this. toolbar. style. left = this. origX + event. clientX - this. grabX + 'px';
        this. toolbar. style. top = this. origY + event. clientY - this. grabY + 'px';
    },
   
    tbOnMouseUp: function (event)
    {
        this. doc. removeEventListener ('mousemove', this, false);
        this. toolbar. style. zIndex = 9997;
    },
   
    tbOnMouseDown: function (event)
    {
        if (event. target == this. toolbar)
        {
            event. preventDefault ();
            this. toolbar. style. zIndex = 9998;
            this. grabX = event. clientX;
            this. grabY = event. clientY;
            this. origX = parseInt (this. toolbar. style. left);
            this. origY = parseInt (this. toolbar. style. top);
            this. doc. addEventListener ('mousemove', this, false);
            this. doc. addEventListener ('mouseup', this, false);
        }
    },
   
    removeEventListener: function (element, eventType, captureFlag)
    {
        try
        {
            element. removeEventListener (eventType, this, captureFlag);
        }
        catch (err) {}
    },
   
    removeElement: function (element)
    {
        try
        {
            element. parentNode. removeChild (element);
        }
        catch (err) {}
    },
   
    clseOnClick: function (event)
    {
   
    if(event. currentTarget. getAttribute ('id')=='trans_'){
   

    var fkr =event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
   
   
    if(fkr.tagName=='DIV'){
    var doc=this. doc
    var html_ = doc. createElement ('textarea');
    html_. setAttribute('style',"height:95%;width:100%")
    html_. setAttribute('class',"almost_half_cell")
   
    fkr.parentNode.removeChild(fkr)
    var anco =event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]
    anco. appendChild (html_)
    }else{
    var fkr =event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
    var query=fkr .value
        var anco = event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]
    query = escape (convertFromUnicode ("UTF-8", query ))
    if(this.lang=='l'){
    fkr.parentNode.removeChild(fkr)

      this.Xmlhttp(anco,getText(fkr .value))
      }else{
    var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'
    this.ajax_(url,anco)}
   
    }
   
   
   
    }
if(event. currentTarget. getAttribute ('id')=='trans_v'){
var fkr = event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
var anco = event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]

fkr.parentNode.removeChild(fkr)
var query =readFromClipboard()
if(this.lang=='l'){
this.Xmlhttp(anco,query)
}else{
    query = escape (convertFromUnicode ("UTF-8", query ))
   
    var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'
   
    this.ajax_(url,anco)


}}
if(event. currentTarget. getAttribute ('id')=='trans_vv'){
var fkr = event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
var anco = event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]
fkr.parentNode.removeChild(fkr)

var query=this. getText ()
if(this.lang=='l'){
this.Xmlhttp(anco)
}else{
    query = escape (convertFromUnicode ("UTF-8", query ))
    var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'
    this.ajax_(url,anco)


}}
if(event. currentTarget. getAttribute ('id')=='trans_sv'){
var fkr = event. currentTarget.parentNode.firstChild.firstChild

if(fkr.style.height== "290px"){
fkr. setAttribute('style','height:0px;width:330px;')
}else{
fkr. setAttribute ('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;font:14px Times New Roman;height:290px;width:330px;overflow:auto;cursor:text;');}



}   



   
if(!(event. currentTarget. getAttribute ('id'))){
            this.na_lang= null
        this.s_lang= null
        this.lang=null
        this. clse. removeEventListener ('click', this, false);
        this. removeEventListener (this. toolbar, 'mousedown', false);
        this. removeEventListener (this. doc, 'mousemove', false);
        this. removeEventListener (this. doc, 'mouseup', false);
       
        this. removeElement (this. toolbar);
       
        this. clse = null;
        this. toolbar = null;
        this. win = null;
        this. doc = null;
    }},
   
    ujs_createWindow: function (lang,na_lang,s_lang)
    {
   
        var doc = this. doc;
        var win = this. win;
        if(lang=='l'){
       
        this. lang = lang
       
        }else{
        this. na_lang = na_lang
        this. s_lang = s_lang
        }
        var h, w;
        
        toolbar = doc. createElement ('div');
        toolbar. setAttribute('id','trans_m')
        this. toolbar = toolbar;
        
        var title = (arguments. length > 1) ?arguments [1]: '<a href="http://rp5.ru/town.php?id=7494" target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;">rp5.ru</a>';
       
        toolbar. innerHTML = '<div></div><button class="toolbarbutton-2">close</button>'
        toolbar. setAttribute('style', 'position:fixed;background:aquamarine;display:block;visibility:hidden;left:0px;top:0;height:avto;width:avto;font:16px Times New Roman;border:1px solid gray;padding:3px;z-index:9997;overflow:visible;cursor:move;background-color:rgba(110,150,179,.59) !important;');
        toolbar. addEventListener ('mousedown', this, false);
        var clse = toolbar. lastChild;
        this. clse = clse;
      
        
        clse. addEventListener ('click', this, false);
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">></button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_sv')
       
        toolbar.appendChild (but)
         clse. setAttribute ('style', 'float:right;');
       
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">write</button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_')
        but. setAttribute('style', 'cursor:pointer;');
        toolbar.appendChild (but)
       
       
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">paste</button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_v')
        but. setAttribute('style', 'cursor:pointer;');
        toolbar. appendChild (but)
       
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">select</button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_vv')
       
        but. setAttribute('style', 'cursor:pointer;');
        toolbar. appendChild (but)
       
       
       
        var iframe_= doc. createElement ('iframe')
        iframe_. setAttribute ('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;font:14px Times New Roman;height:290px;width:330px;overflow:auto;cursor:text;');
       
        iframe_. addEventListener ('load', this, false);
        iframe_. setAttribute('src','about:blank')
       
        toolbar.firstChild. appendChild (iframe_);
        doc. documentElement. appendChild (toolbar);
        var halfWidth = parseInt (toolbar. offsetWidth / 2);
       
        toolbar. style. left = 870 + "px";
        toolbar. style. top = 20 + "px";
        toolbar. style. visibility = 'visible';
        return textbar;
    },
   
    frameOnLoad: function (event)
    {
    var doc = getBrowser (). contentDocument;
    var fkr = event. currentTarget;
   
        fkr. removeEventListener ('load', this, false);
        var frdog = fkr. contentDocument;
var anco = frdog. getElementsByTagName ("html")[0]
this._frfme=anco
var query=this. getText ()

if(!query){

var html_ = doc. createElement ('textarea');
    html_. setAttribute('style',"height:95%;width:100%")
    html_. setAttribute('class',"almost_half_cell")
    anco. appendChild (html_)
}else{
if(this.lang=='l'){

  this.Xmlhttp(anco)
 
  }
  else{
query = escape (convertFromUnicode ("UTF-8", query ))
var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'


xmlhttp = new XMLHttpRequest()
xmlhttp.open('GET',url, false);
xmlhttp.onreadystatechange = function(){     
var html_t = xmlhttp.responseText
var html_ = doc. createElement ('div');
html_.innerHTML =html_t


xmlhttp=null
var TBODY_= html_.getElementsByClassName ("almost_half_cell")[0];


anco. innerHTML =''

anco. appendChild (TBODY_)


}
xmlhttp.send(null);
}
}},
Xmlhttp: function (ancor,t){
var THIS=this
if(t){
var hj=t
}else{
var hj=getText()}

var url='http://lingvopro.abbyyonline.com/ru/Search/en-ru/'+hj
xmlhttp = new XMLHttpRequest()
xmlhttp.open('GET',url, false);
xmlhttp.onreadystatechange = function(){


function divv(id,slovar){
var id2="lupashust"+id
var id1="'"+id2+"'"
if(div_len===0){
var div1='<div id='+id1+'>'}

else{
var div1='<div id='+id1+' style="display: none">'}
    var osnov="if(document.getElementById("+id1+").style.display == 'none'){document.getElementById("+id1+").style.display = 'block';}else{document.getElementById("+id1+").style.display = 'none';}"
    var spOS='<label  style="text-decoration:none;color:#483D8B;font:16px Times New Roman;cursor:pointer;" onclick="Javascript:'+osnov+'">'+slovar+'</label>'
    var osnov1=spOS+div1
    return osnov1}


var doc = getBrowser (). contentDocument;   
var html_t = xmlhttp.responseText
var temp = doc. createElement ('div');

temp.innerHTML =html_t
xmlhttp=null
var div_col= temp. getElementsByClassName ("js-article-html")
var length=div_col.length


var div_len=div_col.length-1;
var id=0
var kon ='</div><br>'
var str=new String()
for (;;) {

var div_res_t= div_col[div_len]

var slovar_t= div_res_t. getElementsByTagName ("a")[0]
var slovar=slovar_t. textContent
var tex_Span='<span style="color:red;text-decoration:underline;"align="right"> <span style="color:black">'
div_res_t. getElementsByTagName ("h2")[0].style.display = 'none';
div_res_t. getElementsByTagName ("a")[0].innerHTML=tex_Span+'<h3>'+hj+'</h3>'+'</span></span>'
div_res_t. getElementsByTagName ("a")[0].removeAttribute('href')
var div_res=div_res_t.innerHTML

var s_title=divv(id,slovar,div_len)

var str =str+s_title+div_res+kon
if(div_len==0){

var str='<div class="osnov_div">'+str+'</div><div class="nov_div"></div>'

  break;}
div_len--
id++ 
}


var anc = doc. createElement ('div');
anc . setAttribute('class',"almost_half_cell")
anc.innerHTML =str


var DFG= anc. getElementsByTagName ("a")
var DFl= anc. getElementsByTagName ("a").length

var DFl1= DFl-1
for(;;){
var DFG1= anc. getElementsByTagName ("a")[DFl1]



DFG1.setAttribute ('style', 'text-decoration:none;color:#4169e1;font:16px Times New Roman;')


DFG1.removeAttribute('href')

if(DFl1==0)
break;
DFl1--;}
var anc2= doc. createElement ('A');
anc2. innerHTML = '<a href='+url+' target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;"><span style="color:red;text-decoration:underline;"align="right"> <span style="color:#000099">Оригинал</span></span></a>';
anc.insertBefore(anc2, anc.firstChild)
ancor. appendChild (anc);
}
xmlhttp.send(null);
}
}};

var THIS=this


this.clik_= function (event){

alert('888')
}

переводить можно с помощью google либо лингво
правый клик переводит всю страницу в coogle
кому кнопка пригодилась пешите коментарии
b97789ff61a7f6acc73e22ac34ff623b.png

Отредактировано Ste_pan (14-12-2011 17:58:42)

Отсутствует

 

№332816-12-2011 06:58:40

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 8.0

Re: Custom Buttons

Как из поискового плагина

скрытый текст

Выделить код

Код:

<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>Link-Files</os:ShortName>
<os:Description>Link-Files</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADBklEQVQ4jX3TfUzMcRwH8M/Jw3mKnBgLfxgWMjSVpTtWTdzS7brj6uJcj1dHnbud6rock1zzkHSamDZPpXko8hhFrGgtrW4eSo1GI/1hLbeWr9/v7R/+MJc/3tv7r9f7rzfxj5Kr+Ce7arh7W4tQm2hCbYYS17SBKJXPgVLpAUDwvxCKg1v4U0GMO6ca/OEI6+UKxT18vuQdsiTvkLHxDXRb60YMxiOjAnyerJW3hTI+bT3jFNHsW6aqz2WWvx/WK3r4eFUPxOGdTJb0YHRgt7qVM8YyXhvDOH8Z609L/ty7X9X/1hbZ31mgHmjLUQ80RyTWjQpwO9PbuKR0xin07KePinVYowa7P63Fk66lqO2NQnlXPNafy4Jn5j6pe0Bhbeeis9nP8EzuhyiBNdlkrtcfpGjoDMOzPh3u9+YjoswIb4tB7xZgGw60s3VWNhKYyw1669jDHI2r7pUY1R0S3OhRorLbAu31PIQ7Ct0D3wNt7UO+Zjbol8W+zExl1Tmpw1Uvt6OseRMudSbB4TRg+1U7xIV298DXFRbnlxk61jd7F+uelswu7NUPn2/ag+PP1HA4M2BrMSLkTDY8zXr3wPuF5vauCfHsjTCBPRVpOPsh08jRh2Yca7Igu9kI43Mblp82YXa2oVKYukfyD+D0Tm9rHaNhLWM0rDhCw5mqTLDcsiLvxTEkNuQirv4wAqpsmFWSibHbtjQSkffvTAYgoKaJKa0NpGWPScPKfHa6ZEV6LqXiANLqixBXfxJB1XYsuJgPUYpyiLw8Y4gomIgWENE4AAK6Oza+4RZpXDdpByuZqBzSBsd8CyvJgfx2KSQ1pfC5XIR5NgP8V4bcIaIYIgr8sw5AQCcocs1FinNWeiR83OcZ1aiYGnB1iTp2YPWVs/ApL8V0uwUhoTLXhvF+N4lISkS+fwEABPYp0csq/a3O/CB9hVAoDPHw8pLOdRQMzCgpgEi+sV/tu7lxsWh+KBFNI6K/Hkp/ykFxyqKDckMuEYkACCbpElaNj92ipJmT5ihp9Fv/AkzbW6JMvNeEAAAAAElFTkSuQmCC</os:Image>
<SearchForm>http://link-files.ru/</SearchForm>
<os:Url type="text/html" method="POST" template="http://link-files.ru/index.php">
  <os:Param name="getlinkss" value="YES"/>
  <os:Param name="links" value="{searchTerms}"/>
</os:Url>
</SearchPlugin>

сделать кнопку?
Или кнопку для открытия ссылки (из адр. строки или линка) в Link-Files - Прямые ссылки с ФО.

Отсутствует

 

№332916-12-2011 20:53:29

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Ste_pan пишет

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

фрейм получился красивый, но кнопка не переводит текст.
Консоль ошибок-
fkr is undefined
textbar is not defined

Отредактировано bunda1 (16-12-2011 20:59:28)

Отсутствует

 

№333017-12-2011 15:03:28

Ste_pan
Участник
 
Группа: Members
Откуда: приморский край п.сибирцево
Зарегистрирован: 13-02-2011
Сообщений: 63
UA: Firefox 7.0

Re: Custom Buttons

у меня работает . но там ошибка была поправил попробуй

скрытый текст
var menu =
<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       oncommand="this.parentNode.translate(event)">
       
    <menuitem type="radio" value="en|ru" label="en-ru"/>
    <menuitem type="radio" value="ru|en" label="ru-en"/>
      <menuseparator/>
   
    <menuitem type="radio" value="l" label="Словарь"/>
</menupopup>;
menu = custombuttonsUtils. makeXML (menu);


this. type = "menu-button";
this.orient = "horizontal";
this. appendChild (menu);



function getText(fl){
if(!!(fl)){
return Text(fl)
}
var doc = getBrowser (). contentDocument;
var tqa = document.commandDispatcher.focusedElement
if(tqa){
var as = tqa.value
var tre= as.length
if(tre > 0){
var sell = as.substring(tqa.selectionStart, tqa.selectionEnd);
var tre= sell.length
if(tre==0){
var fun=as
var fun=Text(fun)
return fun
}
else{
var fun=sell
var fun=Text(fun)
return fun
}}
}
var String =document. commandDispatcher. focusedWindow. getSelection (). toString ();
var tre0= String.length
if(tre0===0){
var searchbar = document.getElementById("searchbar");
var t=document.getAnonymousElementByAttribute(searchbar, "anonid", "searchbar-textbox").value
var tre= t.length
if(tre==0){
return
}
else{
var fun=t
var fun=Text(fun)
return fun
}}
var fun=String
var fun=Text(fun)
return fun

function Text(fun){
var n =0
for(;;){
var ring =fun.charCodeAt(n)
if(ring==32){
n++}
else{
var str=fun.slice(n)
var n1 = str.search(/ /)
if(n1==-1){
return str}
else{var stgr1=str.slice(0,n1)
return stgr1}
break;}}
}}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

this. onclick = function (event){
if ( event. shiftKey)
        return;
if (event. button == 2)
           {
           event. preventDefault ();
           event. stopPropagation ();
           var doc = getBrowser (). contentDocument;
   getBrowser (). loadURI
            (
                'http://translate.google.com/translate?u=' +
                doc. location. href +
                '&hl=' +
                'ru' +
                '&langpair=' +
                'auto|ru' +
                '&tbb=1' +
                (doc. charset? '&ie=' + doc. charset: ''),
                null,
                null
            );
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this. translate = function (e)
{
var translator = new cbTranslatorButton (getBrowser ());
if(e. target){
var lang = e. target. getAttribute ("value");}
else{
lang = e}
if(!(lang=='l')){

  var na_lang =lang.substring(3);
var s_lang = lang.substr(0,2);
}

translator. ujs_createWindow (lang,na_lang,s_lang)



};

var val = this. getAttribute ("id");
function cbTranslatorButton (browser)
{
    this. doc = browser. contentDocument;
    this. win = browser. contentDocument. defaultView;
}
cbTranslatorButton. prototype =
{
    doc: null,
    _frfme: null,
    win: null,
    toolbar: null,
    clse: null,
    frame: null,
    na_lang: null,
    s_lang: null,
    lang: null,
    grabX: 0,
    origX: 0,
    grabY: 0,
    origY: 0,
ajax_: function (url,anco)
    {
var doc = getBrowser (). contentDocument;
   
    xmlhttp = new XMLHttpRequest()
    xmlhttp.open('GET',url, false);
    xmlhttp.onreadystatechange = function(){     

    var html_t = xmlhttp.responseText
    var html_ = doc. createElement ('div');
    html_.innerHTML =html_t


    xmlhttp=null
    var TBODY_= html_.getElementsByClassName ("almost_half_cell")[0];

    anco. innerHTML =''

    anco. appendChild (TBODY_)


    }
    xmlhttp.send(null);
       
},
   
    getText: function ()
    {
var tqa = document.commandDispatcher.focusedElement

if(tqa){
var uy=tqa.tagName
var arr = [];
arr[0] ='html:input'
arr[1] ='INPUT'
arr[2] ='TEXTAREA'
var j = 0
for(var i=0;i<arr.length;i++)
    {if (uy==arr[i]){
    var j = 1
    break;}}
if (j==1)
{

var as = tqa.value
var sell = as.substring(tqa.selectionStart, tqa.selectionEnd);
if(sell){
return sell;}
return as }else{
var doc = getBrowser (). contentDocument;
var t = doc. defaultView. getSelection ();
if(t){
return t}
}}
var t = document. commandDispatcher. focusedWindow. getSelection (). toString ();
if(t){
return t}
var t = ''
var t = t. toString ();
return t}
,
    handleEvent: function (event)
    {
        switch (event. type)
        {
            case "mousedown":
                this. tbOnMouseDown (event);
                break;
            case "mousemove":
                this. tbOnMouseMove (event);
                break;
            case "mouseup":
                this. tbOnMouseUp (event);
                break;
            case "click":
                this. clseOnClick (event);
                break;
            case "load":
                this. frameOnLoad (event);
                break;
        }
    },
   
    tbOnMouseMove: function (event)
    {
        this. toolbar. style. left = this. origX + event. clientX - this. grabX + 'px';
        this. toolbar. style. top = this. origY + event. clientY - this. grabY + 'px';
    },
   
    tbOnMouseUp: function (event)
    {
        this. doc. removeEventListener ('mousemove', this, false);
        this. toolbar. style. zIndex = 9997;
    },
   
    tbOnMouseDown: function (event)
    {
        if (event. target == this. toolbar)
        {
            event. preventDefault ();
            this. toolbar. style. zIndex = 9998;
            this. grabX = event. clientX;
            this. grabY = event. clientY;
            this. origX = parseInt (this. toolbar. style. left);
            this. origY = parseInt (this. toolbar. style. top);
            this. doc. addEventListener ('mousemove', this, false);
            this. doc. addEventListener ('mouseup', this, false);
        }
    },
   
    removeEventListener: function (element, eventType, captureFlag)
    {
        try
        {
            element. removeEventListener (eventType, this, captureFlag);
        }
        catch (err) {}
    },
   
    removeElement: function (element)
    {
        try
        {
            element. parentNode. removeChild (element);
        }
        catch (err) {}
    },
   
    clseOnClick: function (event)
    {
   
    if(event. currentTarget. getAttribute ('id')=='trans_'){
   

    var fkr =event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
   
   
    if(fkr.tagName=='DIV'){
    var doc=this. doc
    var html_ = doc. createElement ('textarea');
    html_. setAttribute('style',"height:95%;width:100%")
    html_. setAttribute('class',"almost_half_cell")
   
    fkr.parentNode.removeChild(fkr)
    var anco =event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]
    anco. appendChild (html_)
    }else{
    var fkr =event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
    var query=fkr .value
        var anco = event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]
    query = escape (convertFromUnicode ("UTF-8", query ))
    if(this.lang=='l'){
    fkr.parentNode.removeChild(fkr)

      this.Xmlhttp(anco,getText(fkr .value))
      }else{
    var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'
    this.ajax_(url,anco)}
   
    }
   
   
   
    }
if(event. currentTarget. getAttribute ('id')=='trans_v'){
var fkr = event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
var anco = event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]

fkr.parentNode.removeChild(fkr)
var query =readFromClipboard()
if(this.lang=='l'){
this.Xmlhttp(anco,query)
}else{
    query = escape (convertFromUnicode ("UTF-8", query ))
   
    var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'
   
    this.ajax_(url,anco)


}}
if(event. currentTarget. getAttribute ('id')=='trans_vv'){
var fkr = event. currentTarget.parentNode.firstChild.firstChild. contentDocument.getElementsByClassName ("almost_half_cell")[0]
var anco = event. currentTarget.parentNode.firstChild.firstChild. contentDocument. getElementsByTagName ("html")[0]
fkr.parentNode.removeChild(fkr)

var query=this. getText ()
if(this.lang=='l'){
this.Xmlhttp(anco)
}else{
    query = escape (convertFromUnicode ("UTF-8", query ))
    var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'
    this.ajax_(url,anco)


}}
if(event. currentTarget. getAttribute ('id')=='trans_sv'){
var fkr = event. currentTarget.parentNode.firstChild.firstChild

if(fkr.style.height== "290px"){
fkr. setAttribute('style','height:0px;width:330px;')
}else{
fkr. setAttribute ('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;font:14px Times New Roman;height:290px;width:330px;overflow:auto;cursor:text;');}



}   



   
if(!(event. currentTarget. getAttribute ('id'))){
            this.na_lang= null
        this.s_lang= null
        this.lang=null
        this. clse. removeEventListener ('click', this, false);
        this. removeEventListener (this. toolbar, 'mousedown', false);
        this. removeEventListener (this. doc, 'mousemove', false);
        this. removeEventListener (this. doc, 'mouseup', false);
       
        this. removeElement (this. toolbar);
       
        this. clse = null;
        this. toolbar = null;
        this. win = null;
        this. doc = null;
    }},
   
    ujs_createWindow: function (lang,na_lang,s_lang)
    {
   
        var doc = this. doc;
        var win = this. win;
        if(lang=='l'){
       
        this. lang = lang
       
        }else{
        this. na_lang = na_lang
        this. s_lang = s_lang
        }
        var h, w;
        
        toolbar = doc. createElement ('div');
        toolbar. setAttribute('id','trans_m')
        this. toolbar = toolbar;
        
        var title = (arguments. length > 1) ?arguments [1]: '<a href="http://rp5.ru/town.php?id=7494" target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;">rp5.ru</a>';
       
        toolbar. innerHTML = '<div></div><button class="toolbarbutton-2">close</button>'
        toolbar. setAttribute('style', 'position:fixed;background:aquamarine;display:block;visibility:hidden;left:0px;top:0;height:avto;width:avto;font:16px Times New Roman;border:1px solid gray;padding:3px;z-index:9997;overflow:visible;cursor:move;background-color:rgba(110,150,179,.59) !important;');
        toolbar. addEventListener ('mousedown', this, false);
        var clse = toolbar. lastChild;
        this. clse = clse;
      
        
        clse. addEventListener ('click', this, false);
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">></button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_sv')
       
        toolbar.appendChild (but)
         clse. setAttribute ('style', 'float:right;');
       
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">write</button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_')
        but. setAttribute('style', 'cursor:pointer;');
        toolbar.appendChild (but)
       
       
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">paste</button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_v')
        but. setAttribute('style', 'cursor:pointer;');
        toolbar. appendChild (but)
       
        var but= doc. createElement ('b')
        but. innerHTML='<button class="toolbarbutton-2">select</button>'
        but. addEventListener ('click', this, false);
        but. setAttribute('id','trans_vv')
       
        but. setAttribute('style', 'cursor:pointer;');
        toolbar. appendChild (but)
       
       
       
        var iframe_= doc. createElement ('iframe')
        iframe_. setAttribute ('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;font:14px Times New Roman;height:290px;width:330px;overflow:auto;cursor:text;');
       
        iframe_. addEventListener ('load', this, false);
        iframe_. setAttribute('src','about:blank')
       
        toolbar.firstChild. appendChild (iframe_);
        doc. documentElement. appendChild (toolbar);
        var halfWidth = parseInt (toolbar. offsetWidth / 2);
       
        toolbar. style. left = 870 + "px";
        toolbar. style. top = 20 + "px";
        toolbar. style. visibility = 'visible';
        return ;
    },
   
    frameOnLoad: function (event)
    {
    var doc = getBrowser (). contentDocument;
    var fkr = event. currentTarget;
   
        fkr. removeEventListener ('load', this, false);
        var frdog = fkr. contentDocument;
var anco = frdog. getElementsByTagName ("html")[0]
this._frfme=anco
var query=this. getText ()

if(!query){

var html_ = doc. createElement ('textarea');
    html_. setAttribute('style',"height:95%;width:100%")
    html_. setAttribute('class',"almost_half_cell")
    anco. appendChild (html_)
}else{
if(this.lang=='l'){

  this.Xmlhttp(anco)
 
  }
  else{
query = escape (convertFromUnicode ("UTF-8", query ))
var url='http://translate.google.ru/?q='+query+'&hl='+this.na_lang+'&langpair='+this.s_lang+'&tbb=1&ujs=gtt'


xmlhttp = new XMLHttpRequest()
xmlhttp.open('GET',url, false);
xmlhttp.onreadystatechange = function(){     
var html_t = xmlhttp.responseText
var html_ = doc. createElement ('div');
html_.innerHTML =html_t


xmlhttp=null
var TBODY_= html_.getElementsByClassName ("almost_half_cell")[0];


anco. innerHTML =''

anco. appendChild (TBODY_)


}
xmlhttp.send(null);
}
}},
Xmlhttp: function (ancor,t){
var THIS=this
if(t){
var hj=t
}else{
var hj=getText()}

var url='http://lingvopro.abbyyonline.com/ru/Search/en-ru/'+hj
xmlhttp = new XMLHttpRequest()
xmlhttp.open('GET',url, false);
xmlhttp.onreadystatechange = function(){


function divv(id,slovar){
var id2="lupashust"+id
var id1="'"+id2+"'"
if(div_len===0){
var div1='<div id='+id1+'>'}

else{
var div1='<div id='+id1+' style="display: none">'}
    var osnov="if(document.getElementById("+id1+").style.display == 'none'){document.getElementById("+id1+").style.display = 'block';}else{document.getElementById("+id1+").style.display = 'none';}"
    var spOS='<label  style="text-decoration:none;color:#483D8B;font:16px Times New Roman;cursor:pointer;" onclick="Javascript:'+osnov+'">'+slovar+'</label>'
    var osnov1=spOS+div1
    return osnov1}


var doc = getBrowser (). contentDocument;   
var html_t = xmlhttp.responseText
var temp = doc. createElement ('div');

temp.innerHTML =html_t
xmlhttp=null
var div_col= temp. getElementsByClassName ("js-article-html")
var length=div_col.length


var div_len=div_col.length-1;
var id=0
var kon ='</div><br>'
var str=new String()
for (;;) {

var div_res_t= div_col[div_len]

var slovar_t= div_res_t. getElementsByTagName ("a")[0]
var slovar=slovar_t. textContent
var tex_Span='<span style="color:red;text-decoration:underline;"align="right"> <span style="color:black">'
div_res_t. getElementsByTagName ("h2")[0].style.display = 'none';
div_res_t. getElementsByTagName ("a")[0].innerHTML=tex_Span+'<h3>'+hj+'</h3>'+'</span></span>'
div_res_t. getElementsByTagName ("a")[0].removeAttribute('href')
var div_res=div_res_t.innerHTML

var s_title=divv(id,slovar,div_len)

var str =str+s_title+div_res+kon
if(div_len==0){

var str='<div class="osnov_div">'+str+'</div><div class="nov_div"></div>'

  break;}
div_len--
id++ 
}


var anc = doc. createElement ('div');
anc . setAttribute('class',"almost_half_cell")
anc.innerHTML =str


var DFG= anc. getElementsByTagName ("a")
var DFl= anc. getElementsByTagName ("a").length

var DFl1= DFl-1
for(;;){
var DFG1= anc. getElementsByTagName ("a")[DFl1]



DFG1.setAttribute ('style', 'text-decoration:none;color:#4169e1;font:16px Times New Roman;')


DFG1.removeAttribute('href')

if(DFl1==0)
break;
DFl1--;}
var anc2= doc. createElement ('A');
anc2. innerHTML = '<a href='+url+' target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;"><span style="color:red;text-decoration:underline;"align="right"> <span style="color:#000099">Оригинал</span></span></a>';
anc.insertBefore(anc2, anc.firstChild)
ancor. appendChild (anc);
}
xmlhttp.send(null);
}
}};

var THIS=this

Отсутствует

 

№333117-12-2011 16:56:14

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Ste_pan
все равно кнопка на FF8 не переводит текст, и фрейм не запоминает положение на странице, а это очень не удобно.

Отсутствует

 

№333218-12-2011 18:52:15

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 11.0

Re: Custom Buttons

bunda1
У меня в Toggle  Find+3(Firefox 7.0+) меню полностью не отображается

скрытый текст
178a01e1d1c9.jpg

Отсутствует

 

№333318-12-2011 19:16:32

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

mserv пишет

bunda1
У меня в Toggle  Find+3(Firefox 7.0+) меню полностью не отображается

Попробовал кнопку на чистом профиле и получил такой же глюк. Мистика, однако. Удалю кнопку. Спасыбо.

Отредактировано bunda1 (18-12-2011 21:18:44)

Отсутствует

 

№333418-12-2011 20:18:01

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 11.0

Re: Custom Buttons

bunda1 пишет

Попробовал кнопку на чистом профиле и получил такой же глюк. Мистика, однако. Удалю кнопку. Спасыбо.

А у меня она заработала. :D  Просто сделал ПКМ-Настроить-ОК, появилось окно для ввода времени автозакрытия. Ввёл 10сек – ОК, кнопка стала зелёной (была красная) и меню появилось.

Вот так вроде работает.

Эту пока не ставил. В чём разница, стоит её пробовать, если предыдущая заработала?:)

Отредактировано mserv (18-12-2011 20:25:26)

Отсутствует

 

№333518-12-2011 20:33:36

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

А у меня она заработала. :D  Просто сделал ПКМ-Настроить-ОК, появилось окно для ввода времени автозакрытия. Ввёл 10сек – ОК, кнопка стала зелёной (была красная) и меню появилось.
Вот так вроде работает.
Эту пока не ставил. В чём разница, стоит её пробовать, если предыдущая заработала?:)

Ну опять ПКМ-Настроить да сколько можно, достало уже.
В чём разница, стоит её пробовать, если предыдущая заработала - уже сам не знаю надо подумать.

Отредактировано bunda1 (18-12-2011 20:38:35)

Отсутствует

 

№333618-12-2011 20:42:17

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 8.0

Re: Custom Buttons

Toggle  Find+3

Как можно сделать что-бы пункт "Поиск по сайту(google)" открывал выбор и всех установленных поисковых плагинов (но поиск по google оставался активным)  и открывался сразу в контекстн. меню, а не через "Find"?

Отсутствует

 

№333718-12-2011 21:28:19

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

vitalii201 пишет

Как можно сделать что-бы пункт "Поиск по сайту(google)" открывал выбор и всех установленных поисковых плагинов (но поиск по google оставался активным)  и открывался сразу в контекстн. меню, а не через "Find"?

Я думаю что можно переделать этот код Context Search, но это работа на несколько часов и я не возьмусь.
но поиск по google оставался активным - это не понятно.

Отредактировано bunda1 (18-12-2011 21:31:06)

Отсутствует

 

№333818-12-2011 22:59:40

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 8.0

Re: Custom Buttons

bunda1 пишет

но поиск по google оставался активным - это не понятно

как в Context Search RG

скрытый текст
54554.png?modified=1298983774

там или сразу ищешь выделенное на гугле, или по стрелке открывается выбор из установленных поисков, но он у меня не работает из-за MenuEditor.
скрытый текст
как из контекстного меню удалить пункт "Find" оставшийся после Toggle Find+3. его видно только в MenuEditor и мне он совсем не мешает, но всё же интересно разобраться было бы :)

Отсутствует

 

№333918-12-2011 23:08:25

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

vitalii201

как из контекстного меню удалить пункт "Find" оставшийся после Toggle Find+3. его видно только в MenuEditor и мне он совсем не мешает, но всё же интересно разобраться было бы

рестарт

там или сразу ищешь выделенное на гугле, или по стрелке открывается выбор из установленных поисков

Context Search

Отредактировано bunda1 (18-12-2011 23:09:50)

Отсутствует

 

№334018-12-2011 23:25:26

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 8.0

Re: Custom Buttons

bunda1 пишет

рестарт

зачем бы я спрашивал если бы так было (мне оно не мешает, в контекстном меню на страницах его нет, а видно только в редакторе MenuEditor)
Context Search посмотрю, спасибо.

Отсутствует

 

№334120-12-2011 12:26:38

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 8.0

Re: Custom Buttons

Есть код догрузки всех картинок на странице (Infocatcher, 02-03-2010 21:54:27):
Для секции "Код":

Выделить код

Код:

// Based on code from chrome://browser/content/nsContextMenu.js (Firefox 3.6)
function reloadImage(img) {
    if(!(img instanceof Components.interfaces.nsIImageLoadingContent))
        return;
    urlSecurityCheck(img.currentURI.spec,
                     gBrowser.contentPrincipal,
                     Components.interfaces.nsIScriptSecurityManager.DISALLOW_SCRIPT);
    img.forceReload();
}
function parseWin(win) {
    Array.forEach(win.frames, parseWin);
    Array.forEach(win.document.images, reloadImage);
}
parseWin(content);

Решил объединить у себя некоторые кнопки и теперь никак не могу сообразить, как впихнуть его в инициализацию, повесив на нажатие ПКМ. Как ни помещаю эти фанкшины, ничего не выходит... Подсобите, плиз.
P.S. Может как-то другим кодом можно догрузить незагруженные изображения?

Отсутствует

 

№334220-12-2011 19:18:50

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

Inko7 пишет

Есть код догрузки всех картинок на странице, как впихнуть его в инициализацию, повесив на нажатие ПКМ. Как ни помещаю эти фанкшины, ничего не выходит... Подсобите, плиз.

:)

Выделить код

Код:

this.tooltipText = "L = about:config | M = about:support | R = догрузка всех картинок";

this.onclick = function(event) {
    if(event.button == 0) {
// ЛКМ
 getBrowser (). selectedTab = getBrowser (). addTab ("about:config");
    }
    else if(event.button == 1) {
// СКМ
 getBrowser (). selectedTab = getBrowser (). addTab ("about:support");
    }
    else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
// Действие при клике ПКМ без модификаторов

// Based on code from chrome://browser/content/nsContextMenu.js (Firefox 3.6)
function reloadImage(img) {
    if(!(img instanceof Components.interfaces.nsIImageLoadingContent))
        return;
    urlSecurityCheck(img.currentURI.spec,
                     gBrowser.contentPrincipal,
                     Components.interfaces.nsIScriptSecurityManager.DISALLOW_SCRIPT);
    img.forceReload();
}
function parseWin(win) {
    Array.forEach(win.frames, parseWin);
    Array.forEach(win.document.images, reloadImage);
}
parseWin(content);

    }
};
this.oncontextmenu = function(event) {
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Блокируем контекстное меню при клике ПКМ без модификаторов
        event.preventDefault();
        event.stopPropagation();
    }
};
Inko7 пишет

P.S. Может как-то другим кодом можно догрузить незагруженные изображения?

я не знаю.
P.S. Зачем надо догружать не загруженные изображения?

Отсутствует

 

№334320-12-2011 19:45:45

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 8.0

Re: Custom Buttons

bunda1
Спасибо, всё работает! :)

P.S. Зачем надо догружать не загруженные изображения?

Иногда бывает, когда открываешь страницу, а вместо некоторых картинок (или всех сразу) только рамка от нее и всё... Так что, кнопочка подгрузки картинок в самый раз!

Отсутствует

 

№334422-12-2011 11:14:22

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

В разделе о Custom Buttons прочитал о кнопках,которые отключают заголовок chrome в браузере.
Интересно а изменить его можно?Сделать свой дизайн.Ширина,высота,фоновый цвет,рамки и так далее.

Отсутствует

 

№334522-12-2011 12:29:57

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 12.0

Re: Custom Buttons

questman пишет

В разделе о Custom Buttons прочитал о кнопках,которые отключают заголовок chrome в браузере.Интересно а изменить его можно?Сделать свой дизайн.Ширина,высота,фоновый цвет,рамки и так далее.

Уроки стилеписания на CSS | Форум Mozilla Россия
Настройка внешнего вида Firefox в userChrome.css | Форум Mozilla Россия
Stylish | Форум Mozilla Россия

Отсутствует

 

№334622-12-2011 17:14:59

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

mserv пишет
questman пишет

В разделе о Custom Buttons прочитал о кнопках,которые отключают заголовок chrome в браузере.Интересно а изменить его можно?Сделать свой дизайн.Ширина,высота,фоновый цвет,рамки и так далее.

Уроки стилеписания на CSS | Форум Mozilla Россия
Настройка внешнего вида Firefox в userChrome.css | Форум Mozilla Россия
Stylish | Форум Mozilla Россия

Ну ни ужели я бы стал задавать этот вопрос если бы по тем ссылкам, что вы мне предложили был бы ответ.

Отсутствует

 

№334722-12-2011 18:22:36

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 12.0

Re: Custom Buttons

questman пишет

Ну ни ужели я бы стал задавать этот вопрос если бы по тем ссылкам, что вы мне предложили был бы ответ.

Ну если вы его не смогли там найти, это ещё не значит, что его там нет. Если вы самостоятельно не смогли найти ответ, то спрашивать надо в темах, которые я вам предложил.:dumb:

Отредактировано mserv (22-12-2011 18:23:13)

Отсутствует

 

№334822-12-2011 19:35:46

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

mserv пишет
questman пишет

Ну ни ужели я бы стал задавать этот вопрос если бы по тем ссылкам, что вы мне предложили был бы ответ.

Ну если вы его не смогли там найти, это ещё не значит, что его там нет. Если вы самостоятельно не смогли найти ответ, то спрашивать надо в темах, которые я вам предложил.:dumb:

Спасибо не надо.Научен горьким опытом.В тех темах ответ будет таким же.Или вообще не будет.

Отсутствует

 

№334922-12-2011 19:54:38

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Custom Buttons

questman пишет

В разделе о Custom Buttons прочитал о кнопках,которые отключают заголовок chrome в браузере.
Интересно а изменить его можно?Сделать свой дизайн.Ширина,высота,фоновый цвет,рамки и так далее.

измени́ть нельзя.

Отсутствует

 

№335024-12-2011 08:45:46

questman
Участник
 
Группа: Members
Зарегистрирован: 05-11-2011
Сообщений: 231
UA: Firefox 9.0

Re: Custom Buttons

Ребята такой вопрос.
Может ли повлиять на потребление памяти FireFox использование большого количества кнопок Custom Buttons?

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]