Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Расширения для Firefox (Mozilla Firefox Extensions) часть 6

Модерирует : gyra, Maz

articlebot (15-10-2014 12:58): Переезжаем в следующую часть:
Расширения для Firefox (Mozilla Firefox Extensions) часть 7.
 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

basilla



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
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%3EGoogle%20translate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUKM9VkSFOhFEQg799/CjEihWAwKDgIFwAyWHgLDjuAGfZgMCQDQkG8abtQ/z8u9A0k4rOTCez2u0GB0gCsLELbCuxLduJy0zAZgOQBBqQALEbtOQoyRgjSZLt9nOaJyf5K2zPjr01SWst8ermZtzd5euLhCQ2Y9iOHXssIvZYr1f39x/T87Ourtr7O3ZUyK6KlN5HVRaOqlxcNGACJKRItigdHFXpFdXoPVWRGmSac0suRYWUWhz7zt5/BXh65Pi6Hr7rI/IopZyqpSqldLsq9onPX3iabuHYr6o3pCVHP2Sa11nIzZdnMAmOSpyejiocVEhtjrwc15L5l4HVDgReCGTR+V9n/AAByma0J+vVwwAAAABJRU5ErkJggg%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%0Avar%20btn%20%3D%20this%3B%0A%0Abtn.lastClick%20%3D%20%7B%0A%20%20%20%20X%3A%200%2C%0A%20%20%20%20Y%3A%200%0A%7D%3B%0AaddEventListener%28%22mouseup%22%2C%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e%20%26%26%20e.button%20%3D%3D%200%20%26%26%20e.view.top%20%3D%3D%20content%29%20%7B%0A%20%20%20%20%20%20%20%20var%20lc%20%3D%20btn.lastClick%3B%0A%20%20%20%20%20%20%20%20lc.X%20%3D%20e.clientX%3B%0A%20%20%20%20%20%20%20%20lc.Y%20%3D%20e.clientY%3B%0A%20%20%20%20%7D%0A%7D%2C%20false%29%3B%0A%0Avar%20safeHTMLParser%20%3D%20function%28code%29%20%7B%0A%20%20%20%20var%20gUnescapeHTML%20%3D%20Cc%5B%22@mozilla.org/feed-unescapehtml%3B1%22%5D.getService%28Ci.nsIScriptableUnescapeHTML%29%3B%0A%20%20%20%20var%20doc%20%3D%20document.implementation.createDocument%28xhtmlns%2C%20%22html%22%2C%20null%29%3B%0A%20%20%20%20var%20body%20%3D%20document.createElementNS%28xhtmlns%2C%20%22body%22%29%3B%0A%20%20%20%20doc.documentElement.appendChild%28body%29%3B%0A%20%20%20%20body.appendChild%28gUnescapeHTML.parseFragment%28code%2C%20false%2C%20null%2C%20body%29%29%3B%0A%20%20%20%20return%20doc%3B%0A%7D%3B%0A%0Avar%20createWindow%20%3D%20function%28text%2C%20status%2C%20title%2C%20id%2C%20pos%2C%20size%29%7B%0A%20%20%20%20var%20win%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%3B%0A%09var%20doc%20%3D%20win.document%2C%20wId%20%3D%20%27ujs_window%27+%28id%20%7C%7C%20%27%27%29%2C%20w%20%3D%20doc.getElementById%28wId%29%3B%0A%09var%20keyDown%20%3D%20function%28e%29%7Bif%28%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%20%26%26%20e.keyCode%20%3D%3D%2027%29doc.getElementById%28wId%29.closeWin%28%29%7D%3B%0A%09if%28w%29w.closeWin%28%29%3B%0A%09w%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09w.setAttribute%28%27style%27%2C%20%27position%3Afixed%3Bdisplay%3Ablock%3Bvisibility%3Ahidden%3Bleft%3A0%3Btop%3A0%3Bwidth%3Aauto%3Bheight%3Aauto%3Bborder%3A1px%20solid%20gray%3Bpadding%3A3px%3Bmargin%3A0%3Bz-index%3A99999%3Boverflow%3Ahidden%3Bcursor%3Amove%3B%27+%28typeof%20w.style.borderRadius%20%3D%3D%3D%20%27string%27%20%3F%20%27background-color%3A%23f3f5f7%3Bpadding-top%3A4px%3Bborder-radius%3A4px%3Bbox-shadow%3A0%200%2012px%20rgba%280%2C0%2C0%2C.4%29%3B%27%20%3A%20%27background%3A-o-skin%28%22Window%20Skin%22%29%3B%27%29%29%3B%0A%09w.id%20%3D%20wId%3B%0A%09w.closeWin%20%3D%20function%28%29%7B%0A%09%09doc.removeEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%09%09this.parentNode.removeChild%28this%29%3B%0A%09%7D%3B%0A%09w.addEle%20%3D%20function%28str%2C%20style%29%7B%0A%09%09var%20ele%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09%09ele.setAttribute%28%27style%27%2C%20style%29%3B%0A%09%09if%28str%29%7B%0A%09%09%09ele.innerHTML%20%3D%20str%3B%0A%09%09%09for%28var%20el%2C%20all%20%3D%20ele.getElementsByTagName%28%27*%27%29%2C%20i%20%3D%20all.length%3B%20i--%3B%29%7B%0A%09%09%09%09el%20%3D%20all%5Bi%5D%3B%0A%09%09%09%09if%28/%5E%28script%7Cframe%7Ciframe%7Capplet%7Cembed%7Cobject%29%24/i.test%28el.nodeName%29%29%7B%0A%09%09%09%09%09el.parentNode.removeChild%28el%29%3B%0A%09%09%09%09%7Delse%7B%0A%09%09%09%09%09for%28var%20att%20%3D%20el.attributes%2C%20j%20%3D%20att.length%3B%20j--%3B%29%7B%0A%09%09%09%09%09%09if%28/%5Eon%5Ba-z%5D+%24/i.test%28att%5Bj%5D.name%29%29att%5Bj%5D.value%20%3D%20%27%27%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%3B%0A%09%09return%20this.appendChild%28ele%29%3B%0A%09%7D%3B%0A%09var%20img%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09img.setAttribute%28%27style%27%2C%20%27display%3Ablock%3Bfloat%3Aright%3Bwidth%3A18px%3Bheight%3A18px%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3Anone%3Bcursor%3Apointer%3Bbackground-image%3Aurl%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII%3D%22%29%3Bbackground%3A-o-skin%28%22Caption%20Close%20Button%20Skin%22%29%3B%27%29%3B%0A%09img.title%20%3D%20%28win.navigator.language.indexOf%28%27ru%27%29%20%3D%3D%200%29%20%3F%20%27%5Cu0417%5Cu0430%5Cu043A%5Cu0440%5Cu044B%5Cu0442%5Cu044C%27%20%3A%20%27Close%27%3B%0A%09img.addEventListener%28%27click%27%2C%20function%28%29%7Bthis.parentNode.closeWin%28%29%7D%2C%20false%29%3B%0A%09w.appendChild%28img%29%3B%0A%09w.addEle%28title%2C%20%27display%3Atable%3Bcolor%3A%23000%3Bfont%3A16px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%09var%20cnt%20%3D%20w.addEle%28text%2C%20%27display%3Ablock%3Bborder%3A1px%20solid%20%23aaa%3Bmargin%3A2px%200%201px%200%3Bpadding%3A4px%3Bbackground-color%3A%23fafcfe%3Bcolor%3A%23000%3Bfont%3A14px%20Times%20New%20Roman%3Bwidth%3A240px%3Bheight%3A120px%3Boverflow%3Aauto%3Bcursor%3Atext%3B%27%29%3B%0A%09w.addEle%28status%2C%20%27display%3Atable%3Bcolor%3A%23555%3Bfont%3A10px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%09w.addEventListener%28%27mousedown%27%2C%20function%28e%29%7B%0A%09%09if%28e.target%20%3D%3D%20w%29%7B%0A%09%09%09e.preventDefault%28%29%3B%0A%09%09%09var%20grabX%20%3D%20e.clientX%2C%20grabY%20%3D%20e.clientY%2C%20origX%20%3D%20parseInt%28w.style.left%29%2C%20origY%20%3D%20parseInt%28w.style.top%29%3B%0A%09%09%09var%20mouseMove%20%3D%20function%28ev%29%7B%0A%09%09%09%09w.style.left%20%3D%20origX+ev.clientX-grabX+%27px%27%3B%0A%09%09%09%09w.style.top%20%3D%20origY+ev.clientY-grabY+%27px%27%3B%0A%09%09%09%7D%3B%0A%09%09%09doc.addEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%3B%0A%09%09%09doc.addEventListener%28%27mouseup%27%2C%20function%28%29%7Bdoc.removeEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%7D%2C%20false%29%3B%0A%09%09%7D%0A%09%7D%2C%20false%29%3B%0A%09doc.documentElement.appendChild%28w%29%3B%0A%0A%09if%28size%29%7B%0A%09%09cnt.style.height%20%3D%20size.height%3B%0A%09%09cnt.style.width%20%3D%20size.width%3B%0A%09%7Delse%7B%0A%09%09for%28var%20i%20%3D%203%3B%20i%20%3C%2010%3B%20i++%29%7B%0A%09%09%09if%28cnt.scrollHeight%20%3E%20cnt.offsetHeight%20%7C%7C%20cnt.scrollWidth%20%3E%20cnt.offsetWidth%29%7B%0A%09%09%09%09cnt.style.height%20%3D%2050*i+%27px%27%3B%0A%09%09%09%09cnt.style.width%20%3D%20100*i+%27px%27%3B%0A%09%09%09%7Delse%20break%3B%0A%09%09%7D%0A%09%7D%3B%0A%09var%20docEle%20%3D%20doc.compatMode%20%3D%3D%20%27CSS1Compat%27%20%3F%20doc.documentElement%20%3A%20doc.body%3B%0A%09var%20mX%20%3D%20docEle.clientWidth-w.offsetWidth%2C%20mY%20%3D%20docEle.clientHeight-w.offsetHeight%3B%0A%09if%28mX%20%3C%200%29%7Bcnt.style.width%20%3D%20parseInt%28cnt.style.width%29+mX+%27px%27%3B%20mX%20%3D%200%7D%3B%0A%09if%28mY%20%3C%200%29%7Bcnt.style.height%20%3D%20parseInt%28cnt.style.height%29+mY+%27px%27%3B%20mY%20%3D0%7D%3B%0A%09var%20hW%20%3D%20parseInt%28w.offsetWidth/2%29%3B%0A%09w.style.left%20%3D%20%28pos%20%26%26%20pos.X%20%3C%20mX+hW%20%3F%20%28pos.X%20%3E%20hW%20%3F%20pos.X-hW%20%3A%200%29%20%3A%20mX%29+%27px%27%3B%0A%09w.style.top%20%3D%20%28pos%20%26%26%20pos.Y+10%20%3C%20mY%20%3F%20pos.Y+10%20%3A%20mY%29+%27px%27%3B%0A%09w.style.visibility%20%3D%20%27visible%27%3B%0A%09doc.addEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%7D%3B%0A%0Avar%20getSel%20%3D%20function%20%28w%29%20%7B%0A%20%20%20%20var%20s%2C%20d%20%3D%20w.document%3B%0A%20%20%20%20if%20%28d.selection%29%20%7B%0A%20%20%20%20%20%20%20%20var%20r%20%3D%20d.selection.createRange%28%29%3B%0A%20%20%20%20%20%20%20%20s%20%3D%20r%20%3F%20r.text%20%3A%20%27%27%0A%20%20%20%20%7D%20else%20%7B%0A%09%09s%20%3D%20d.getSelection%28%29.toString%28%29%3B%0A%09%09if%20%28%21s%29%20%7B%0A%09%09%09var%20e%2C%20t%20%3D%20d.getElementsByTagName%28%27textarea%27%29%2C%20u%20%3D%20d.getElementsByTagName%28%27input%27%29%2C%20i%20%3D%20t.length%3B%0A%09%09%09while%28e%20%3D%20%28i%20%3E%200%29%20%3F%20t%5B--i%5D%20%3A%20u%5B-i--%5D%29try%7B%0A%09%09%09%09if%20%28e.offsetHeight%20%3E%200%20%26%26%20%28s%20%3D%20e.value.substring%28e.selectionStart%2C%20e.selectionEnd%29%29%29%20break%0A%09%09%09%7Dcatch%28x%29%7B%7D%0A%09%09%7D%0A%09%7D%3B%0A%20%20%20%20if%20%28%21s%29%20for%20%28var%20j%20%3D%200%2C%20f%3B%20f%20%3D%20w.frames%5Bj%5D%3B%20j++%29%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28s%20%3D%20getSel%28f%29%29%20break%0A%20%20%20%20%20%20%20%20%7D%20catch%28x%29%20%7B%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20s%0A%7D%3B%0A%0Avar%20ujs_google_translate%20%3D%20function%20%28dir%29%7B%0A%20%20%20%20var%20win%20%3D%20content%2C%20lng%20%3D%20win.navigator.language.slice%280%2C%202%29%2C%20txt%20%3D%20getSel%28win%29%3B%0A%20%20%20%20if%20%28txt%29%20%7B%20%0A%20%20%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20%20%20var%20encTxt%20%3D%20%27text%3D%27%20+%20encodeURIComponent%28txt%29%2C%20post%20%3D%20encTxt.length%20%3E%201024%2C%20l%20%3D%20dir.split%28%27%7C%27%29%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%27http%3A//translate.google.com/%3F%27%20+%20%28post%20%3F%20%27%27%20%3A%20encTxt%20+%20%27%26%27%29%20+%20%27sl%3D%27%20+%20l%5B0%5D%20+%20%27%26tl%3D%27%20+%20l%5B1%5D%20+%20%27%26hl%3D%27%20+%20lng%20+%20%27%26eotf%3D0%26ujs%3Dgtt%27%3B%0A%0A%20%20%20%20%20%20%20%20xhr.open%28post%20%3F%20%27POST%27%20%3A%20%27GET%27%2C%20url%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20if%28post%29xhr.setRequestHeader%28%27Content-Type%27%2C%20%27application/x-www-form-urlencoded%27%29%3B%0A%20%20%20%20%20%20%20%20xhr.onreadystatechange%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28xhr.readyState%20%3D%3D%204%20%26%26%20xhr.status%20%3D%3D%20200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20%27%27%2C%20status%20%3D%20%27%27%2C%20tmp%20%3D%20safeHTMLParser%28xhr.responseText%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%20tmp.querySelector%28%27%23result_box%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28r%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20p%20%3D%20r.getElementsByTagName%28%27span%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20i%20%3D%200%2C%20n%3B%20n%20%3D%20p%5Bi%5D%3B%20i++%29%7B%0A%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%20n.setAttribute%28%27style%27%2C%20%27background-color%3Ainherit%3Bcolor%3Ainherit%3Bfont-size%3Ainherit%3Bfont-family%3Aserif%3B%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20result%20%3D%20r.innerHTML%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sl%20%3D%20tmp.querySelector%28%27%23nc_sl%27%29%2C%20dl%20%3D%20tmp.querySelector%28%27%23nc_dl%27%29%2C%20tl%20%3D%20tmp.querySelector%28%27%23nc_tl%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28sl%20%26%26%20dl%20%26%26%20tl%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%20%3D%20%28%28dl.value%20%7C%7C%20sl.value%29+%27%20-%5Cu203A%20%27+tl.value%29.toUpperCase%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createWindow%28result%2C%20status%2C%20%27%3Ca%20href%3D%22%27+url.replace%28/%26/g%2C%27%26amp%3B%27%29+%27%22%20target%3D%22_blank%22%20style%3D%22display%3Ainline%3Bpadding%3A0%3Bmargin%3A0%3Btext-decoration%3Anone%3Bborder%3Anone%3Bcolor%3A%23009%3Bfont%3A16px%20Times%20New%20Roman%3B%22%3EGoogle%20Translate%3C/a%3E%27%2C%20%27_gt%27%2C%20btn.lastClick%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28x%29%7B%7D%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20xhr.send%28post%20%3F%20encTxt%20%3A%20null%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20win.open%28%27http%3A//translate.google.com/translate%3Fu%3D%27+escape%28win.location.href%29+%27%26hl%3D%27+lng+%27%26langpair%3D%27+dir+%27%26tbb%3D1%27%29%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%0Abtn.onclick%20%3D%20function%28e%29%7Bif%28e.button%20%3D%3D%200%29ujs_google_translate%28%27auto%7Cru%27%29%7D%3B%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20nextEleMenu%20%3D%20document.getElementById%28%22context-inspect%22%29%3B%0A%0Avar%20menuId%20%3D%20%22context-ext-google-translate%22%3B%0Avar%20menuItem%20%3D%20document.getElementById%28menuId%29%3B%0Aif%20%28menuItem%29%20%7B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem%29%3B%0A%7D%3B%0A%0AmenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22id%22%2C%20menuId%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0440%u0443%u0441%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cru%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AmenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0430%u043D%u0433%u043B%u0438%u0439%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cen%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AcontextMenu.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20nextEleMenu%29%3B%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
 
ˮ⋊
 
/*Initialization Code*/
 
var btn = this;
 
btn.lastClick = {
    X: 0,
    Y: 0
};
addEventListener("mouseup", function(e) {
    if (e && e.button == 0 && e.view.top == content) {
        var lc = btn.lastClick;
        lc.X = e.clientX;
        lc.Y = e.clientY;
    }
}, false);
 
var safeHTMLParser = function(code) {
    var gUnescapeHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML);
    var doc = document.implementation.createDocument(xhtmlns, "html", null);
    var body = document.createElementNS(xhtmlns, "body");
    doc.documentElement.appendChild(body);
    body.appendChild(gUnescapeHTML.parseFragment(code, false, null, body));
    return doc;
};
 
var createWindow = function(text, status, title, id, pos, size){
    var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content;
    var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
    var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
    if(w)w.closeWin();
    w = doc.createElement('div');
    w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
    w.id = wId;
    w.closeWin = function(){
        doc.removeEventListener('keydown', keyDown, false);
        this.parentNode.removeChild(this);
    };
    w.addEle = function(str, style){
        var ele = doc.createElement('div');
        ele.setAttribute('style', style);
        if(str){
            ele.innerHTML = str;
            for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                el = all[i];
                if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                    el.parentNode.removeChild(el);
                }else{
                    for(var att = el.attributes, j = att.length; j--;){
                        if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                    }
                }
            }
        };
        return this.appendChild(ele);
    };
    var img = doc.createElement('div');
    img.setAttribute('style', 'display:block;float:right;width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");');
    img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
    img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
    w.appendChild(img);
    w.addEle(title, 'display:table;color:#000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;');
    w.addEle(status, 'display:table;color:#555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    w.addEventListener('mousedown', function(e){
        if(e.target == w){
            e.preventDefault();
            var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top);
            var mouseMove = function(ev){
                w.style.left = origX+ev.clientX-grabX+'px';
                w.style.top = origY+ev.clientY-grabY+'px';
            };
            doc.addEventListener('mousemove', mouseMove, false);
            doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
        }
    }, false);
    doc.documentElement.appendChild(w);
 
    if(size){
        cnt.style.height = size.height;
        cnt.style.width = size.width;
    }else{
        for(var i = 3; i < 10; i++){
            if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
                cnt.style.height = 50*i+'px';
                cnt.style.width = 100*i+'px';
            }else break;
        }
    };
    var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body;
    var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
    if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
    if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
    var hW = parseInt(w.offsetWidth/2);
    w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
    w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
    w.style.visibility = 'visible';
    doc.addEventListener('keydown', keyDown, false);
};
 
var getSel = function (w) {
    var s, d = w.document;
    if (d.selection) {
        var r = d.selection.createRange();
        s = r ? r.text : ''
    } else {
        s = d.getSelection().toString();
        if (!s) {
            var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length;
            while(e = (i > 0) ? t[--i] : u[-i--])try{
                if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break
            }catch(x){}
        }
    };
    if (!s) for (var j = 0, f; f = w.frames[j]; j++) {
        try {
            if (s = getSel(f)) break
        } catch(x) {}
    };
    return s
};
 
var ujs_google_translate = function (dir){
    var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win);
    if (txt) {  
        var xhr = new XMLHttpRequest();
        var encTxt = 'text=' + encodeURIComponent(txt), post = encTxt.length > 1024, l = dir.split('|');
        var url = 'http://translate.google.com/?' + (post ? '' : encTxt + '&') + 'sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&ujs=gtt';
 
        xhr.open(post ? 'POST' : 'GET', url, true);
        if(post)xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onreadystatechange = function() {
            try{
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var result = '', status = '', tmp = safeHTMLParser(xhr.responseText);
                    var r = tmp.querySelector('#result_box');
                    if (r) {
                        var p = r.getElementsByTagName('span');
                        for(var i = 0, n; n = p[i]; i++){
                            n.setAttribute('style', 'background-color:inherit;color:inherit;font-size:inherit;font-family:serif;');
                        };
                        result = r.innerHTML;
                    };
                    var sl = tmp.querySelector('#nc_sl'), dl = tmp.querySelector('#nc_dl'), tl = tmp.querySelector('#nc_tl');
                    if(sl && dl && tl){
                        status = ((dl.value || sl.value)+' -\u203A '+tl.value).toUpperCase();
                    };
                    createWindow(result, status, '<a href="'+url.replace(/&/g,'&amp;')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick);
                }
            } catch (x){};
        };
        xhr.send(post ? encTxt : null);
    } else {
        win.open('http://translate.google.com/translate?u='+escape(win.location.href)+'&hl='+lng+'&langpair='+dir+'&tbb=1');
    };
};
 
 
btn.onclick = function(e){if(e.button == 0)ujs_google_translate('auto|ru')};
 
var contextMenu = document.getElementById("contentAreaContextMenu");
var nextEleMenu = document.getElementById("context-inspect");
 
var menuId = "context-ext-google-translate";
var menuItem = document.getElementById(menuId);
if (menuItem) {
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem);
};
 
menuItem = document.createElement("menuitem");
menuItem.setAttribute("id", menuId);
menuItem.setAttribute("label", "Х&#420069;&#735648;&#59296;&#478385;&#47721;");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);
 
menuItem = document.createElement("menuitem");
menuItem.setAttribute("label", "Х&#420069;&#735648;&#59296;&#7075;&#51817;&#703081;");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);
 
contextMenu.insertBefore(document.createElement("menuseparator"), nextEleMenu);
 

Всего записей: 1139 | Зарегистр. 30-07-2011 | Отправлено: 15:31 02-05-2013
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Расширения для Firefox (Mozilla Firefox Extensions) часть 6
articlebot (15-10-2014 12:58): Переезжаем в следующую часть:
Расширения для Firefox (Mozilla Firefox Extensions) часть 7.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru