возможно ли дополнить кнопку Bookmarks Menu код
var bo = document.getBoxObjectFor( this );
this.lastChild.showPopup ( this, -1, -1, "popup", "bottomleft", "topleft" );
Отредактировано Maxut (09-02-2012 19:12:17)
Отсутствует
Здравствуйте.
Есть хорошие кнопочки Stf, Save Link To Folder(Contextmenu), Save, но это не совсем то, что мне нужно.
Не могли бы вы на их основе сделать кнопки, чтоб в контекстном меню в зависимости от условия появлялись следующие пункты:
1. клик на чистом поле - сохранить ссылку на эту страницу в виде .url ярлыка в указанную папку;
2. клик на выделенном тексте - дописать текст с указанием источника в конкретный .txt файл, находящийся в указанном месте (если невозможно реализовать дописывание, то создание нового с нумерацией) ;
3. клик на ссылке - сохранить ссылку в виде .url ярлыка в указанную папку.
Ну или все эти пункты через дописывание в один существующий .txt файл, находящийся в определенном месте.
Поясню - сохраняться будет в папку DropBox'а для синхронизации между компьютерами.
Спасибо.
Отсутствует
Подскажите пожалуйста есть ли такая кнопка чтобы при ее нажатии открывалась http://translate.google.com/ в новой вкладке
Отсутствует
Подскажите пожалуйста есть ли такая кнопка чтобы при ее нажатии открывалась http://translate.google.com/ в новой вкладке
копируем закладку translate.google.com - вставляем в ярлык - размещаем на панели быстрого доступа
Отредактировано LongLogin (12-02-2012 18:24:10)
Отсутствует
Подскажите пожалуйста есть ли такая кнопка чтобы при ее нажатии открывалась http://translate.google.com/ в новой вкладке
копируем закладку translate.google.com - создаём ярлык - размещаем на панели быстрого доступа
А ещё можно сделать из translate.google поисковый плагин, и тогда сразу будет открываться перевод слова.
Отсутствует
Google переводчик поменял API или что? Я часто пользуюсь кнопкой для перевода выделенного текста, а с недавнего времени перевода не происходит.
Кто может исправить это?
Вот код кнопки:
/* original script is operajs Google-Translate v 1.6.12 opera ujs is http://lexi.ucoz.ru/google-translate.js original author: Lex1 modified by Anton */ const UJS_TOOLBAR_ID = "ujs_toolbar"; const UJS_GOOGLE_TRANSLATE_FRAME_ID = "ujs_googletranslateframe"; function cbTranslatorButton (browser) { this. doc = browser. contentDocument; this. win = browser. contentDocument. defaultView; } cbTranslatorButton. prototype = { doc: null, win: null, toolbar: null, clse: null, frame: null, grabX: 0, origX: 0, grabY: 0, origY: 0, 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; default:; } }, 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) { 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. removeEventListener (this. frame, 'load', false); this. removeElement (this. toolbar); this. removeElement (this. frame); this. frame = null; this. clse = null; this. toolbar = null; this. win = null; this. doc = null; }, ujs_createWindow: function (txt) { var doc = this. doc; var win = this. win; var h, w; var txtLen = txt. length; var tbId = UJS_TOOLBAR_ID; if (arguments. length > 2) tbId += arguments [2]; var toolbar = doc. getElementById (tbId); if (toolbar) toolbar. parentNode. removeChild (toolbar); toolbar = doc. createElement ('div'); this. toolbar = toolbar; toolbar. id = tbId; if (arguments. length == 5) { w = arguments [3]; h = arguments [4] } else { h = 15; w = 20; if (txtLen > 2000) { h = 50; w = 66 } else if (txtLen > 250) { h = 25; w = 33 }; h = parseInt (h * win. innerHeight / 30); w = parseInt (w * win. innerWidth / 50) }; var title = (arguments. length > 1) ?arguments [1]: '<a href="http://translate.google.com/" target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;">Google Translate</a>'; toolbar. innerHTML = '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjIyt5EXfQAAAStJREFUOE+1k9tqhDAQhtOHqO37P4E3IlQFQQSvBBVEl1TBVVi1B+1C8XAx3QmNqIVqhBV+DEPmy8z8ycPX9Ruq6kLqqiRHvkfpiUjSMyGUJtB1HfR9D8MwCAlz6voNkEGCIGDJeZ5DURTCatoWNE0D4nk+jOMoDMBD8fDPpoGXu4OyLAPUutV1/N+KcPPNPaY4jidYktwG+hunlLL4ZmsI4EloxhxiGAY4jgNpmm6D8DQEcBj/I8SyrKnSzYr4bDzPm2CKoiwgu1rDTfN2eEWu6y4M2KxoPRNVVRcz4xXvdm0+k/nMwjDc5xraa9v2n5kgwDRNMdfQXtT6Us7jy9Z8n738Iw82O5/hUpag6zqQ0+kVmqZld0NUURSxl48M8v5xZQtZlg8Jc5HxA5fIE73hTda3AAAAAElFTkSuQmCC" title="Close" width="18" height="18"> ' + title + '<div></div>'; toolbar. setAttribute('style', 'position:fixed;background:white;display:block;visibility:hidden;left:0;top:0;height:auto;width:' + w + 'px;font:16px Times New Roman;border:1px solid gray;padding:3px;z-index:9997;overflow:visible;cursor:move;'); toolbar. addEventListener ('mousedown', this, false); var clse = toolbar. firstChild; this. clse = clse; clse. setAttribute ('style', 'float:right;background:white;padding:0;margin:0;border:none;cursor:pointer;'); clse. addEventListener ('click', this, false); var textbar = toolbar. lastChild; textbar. innerHTML = txt; textbar. setAttribute ('style', 'display:block;border:1px solid #aaaaaa;margin:2px 0 0 0;padding:4px;background-color:#fafcfe;font:14px Times New Roman;height:' + h + 'px;width:auto;overflow:auto;cursor:text;'); doc. documentElement. appendChild (toolbar); var halfWidth = parseInt (toolbar. offsetWidth / 2); var strict = doc. compatMode == 'CSS1Compat'; var mX = (strict? doc. documentElement. clientWidth: doc. body. clientWidth) - toolbar. offsetWidth; var mY = (strict? doc. documentElement. clientHeight: doc. body. clientHeight) - toolbar. offsetHeight; var lastClickX = win. cbTranslateButton2X; var lastClickY = win. cbTranslateButton2Y; toolbar. style. left = ((lastClickX < mX + halfWidth)? (lastClickX > halfWidth? (lastClickX - halfWidth): 0): mX) + "px"; toolbar. style. top = ((lastClickY < mY)? lastClickY: mY) + "px"; toolbar. style. visibility = 'visible'; return textbar; }, frameOnLoad: function (event) { var fr = event. currentTarget; fr. removeEventListener ('load', this, false); var tbId = fr. id. substring (UJS_GOOGLE_TRANSLATE_FRAME_ID. length); var toolbar = this. doc. getElementById (UJS_TOOLBAR_ID + tbId); var frdoc = fr. contentDocument; var a = frdoc. getElementById ('autotrans'); var title = (a && !/#808080/. test (a. innerHTML))? ' - ' + a. textContent. replace (/^.+: | [(\xBB].+$/g, ''): ''; var result = frdoc. getElementById ('result_box'). innerHTML; var ancor = toolbar. getElementsByTagName ("a") [0]; ancor. innerHTML += title; ancor. nextSibling. innerHTML = result; setTimeout ( function () { fr. parentNode. removeChild (fr); }, 0 ); }, google_translate: function (language) { var doc = this. doc; var win = this. win; var t = document. commandDispatcher. focusedWindow. getSelection (). toString (); var lng = (win. navigator. language == 'ru')? 'ru': 'en'; if (t && location. hostname != 'translate.google.com') { this. ujs_createWindow ( (lng == 'ru'? '\u041F\u0435\u0440\u0435\u0432\u043E\u0434\u0438\u043C': 'Translating' ) + '\u2026', '<a href="http://translate.google.com/" target="_blank" style="text-decoration:none;color:#000099;font:16px Times New Roman;">Google Translate</a>', btoa (escape (t)) ); var gtfId = UJS_GOOGLE_TRANSLATE_FRAME_ID; var fr = doc. getElementById (gtfId); if (!fr) fr = doc. createElement ('iframe'); this. frame = fr; fr. setAttribute ('id', gtfId + btoa (escape (t))); fr. setAttribute ('frameborder', '0'); fr. setAttribute ('style', 'width:0px;height:0px;visibility:hidden;position:absolute;left:-999em;'); fr. setAttribute ( 'src', 'http://translate.google.com/translate_t?text=' + encodeURIComponent (t) + '&hl=' + lng + '&langpair=' + language + '&tbb=1&ujs=gtt' ); fr. addEventListener ('load', this, false); doc. documentElement. appendChild (fr); } else { getBrowser (). addTab ( 'http://translate.google.com/translate?u=' + escape (doc. location. href) + '&hl=' + lng + '&langpair=' + language + '&tbb=1' + (doc. charset? '&ie=' + doc. charset: ''), null, null ); } } }; var ct = getBrowser (). selectedTab; if (!ct. cbTranslateButton5) ct. cbTranslateButton5 = []; var translator = new cbTranslatorButton (getBrowser ()); ct. cbTranslateButton5. push (translator); translator. google_translate ("auto|ru");
Отсутствует
Google переводчик поменял API или что?
Да поменял. Но есть аналогичный код от okkamas_knife
var doc = getBrowser (). contentDocument; trtext = doc. defaultView. getSelection (); var url1="http://translate.google.com/translate_t?prev=hp&hl=ru&js=y&text="; var url2="&file=&sl=en&tl=ru&history_state0=#"; var urltr=url1+trtext+url2; var xmlhttp function gettransdata() { xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Your browser does not support AJAX!"); return; } xmlhttp.onreadystatechange=stateChanged; xmlhttp.open("GET",urltr,true); xmlhttp.send(null); } function stateChanged() { if (xmlhttp.readyState==4) { var trin=xmlhttp.responseText; var chkpoint='<span id=result_box'; var arrayOfStrings = trin.split(chkpoint); var trouttmp=arrayOfStrings[1]; var chkpoint='<div id=spell-place-holder'; var arrayOfStrings = trouttmp.split(chkpoint); trouttmp1=arrayOfStrings[0]; trouttmp2=trouttmp1.replace(/<span.+?">/g,"") trouttmp2=trouttmp2.replace(/<\/span>/g,"") trouttmp2=trouttmp2.replace(/class="long_text">/g,"") trouttmp2=trouttmp2.replace(/class="short_text">/g,"") trouttmp2=trouttmp2.replace(/class="medium_text">/g,"") trouttmp2=trouttmp2.replace(/<br><\/div><\/div>/g,"") var jurl='data:text/html,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><html><head><title></title><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>'+trouttmp2+'</body></html>'; var sizex = screen.width/2.2 var sizey = screen.height/2.2 var posx=screen.width-sizex; var posy=screen.height-sizey; var wnd = window.open(jurl, this.name, "width="+(sizex-30)+",height="+(sizey-87)+",screenX="+posx+",screenY="+posy+",status=no,scrollbars=yes,resizable=yes"); if (wnd.focus) { wnd.focus(); }; } } function GetXmlHttpObject(){ if (window.XMLHttpRequest) { return new XMLHttpRequest();} if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP");} return null; } gettransdata();
Отсутствует
А как это можно сделать?!
Отсутствует
Как создать "узкую" кнопку?
Есть код:
/*Initialization Code*/ this.setAttribute("cb-style", "hidelabel"); this. style. width = "16px"; var elt = document. getAnonymousElementByAttribute (this, "class", "toolbarbutton-icon"); elt. style. height = "10px"; elt. style. width = "10px";
Но кнопка получается шире 16px. В настройках панели инструментов включены "значки+текст" и "маленькие значки". Понятно, что при замене "значки+текст" на "только значки" всё получится, но нужно именно так.
Отсутствует
Но есть аналогичный код от okkamas_knife
Не могу его найти.
Да поменял.
Поставил - работает. Но не так как раньше. Сейчас открывается новое окно и с задержкой. А хотелось бы как раньше - белое окошко поверх текста страницы, которое нигде не "числится". Возможно?
Ещё раньше без выделения текста при нажатии кнопки переводилась вся страница, а сейчас пусто.
Отредактировано 1fesFFFF (13-02-2012 01:32:34)
Отсутствует
leex пишет: А как это можно сделать?!Положите этот файл в профиль в папку searchplugins
Положил, перезагрузил Фокс, но никаких новых кнопок не появилось
Отредактировано leex (13-02-2012 03:27:30)
Отсутствует
mserv
Разобрался
А можно ли сделать так, чтоб не копировать слово или фразу и вставлять в поисковик? А выделить в тексте и нажать на самостоятельно нарисованную кнопку и чтоб после нажатия, открывался в новой вкладке гугл переводчег со вставленной в него фразой?!
добавлено
Вау! Нашел самую лучшую кнопку для переводов текста!!! Это то, что надо
bunda1 Уважуха Вам!!
http://forum.mozilla-russia.org/viewtop … 50#p486850
Единственное, что я хотел бы спросить: какие фразы надо изменить в коде, чтоб по клику ЛКМ перевод всей страницы не всплывал в новой вкладке гугловского переводчика сайтов? Чтоб текст переводился тем же способом, что встроен в гугл тулбар (на той же странице, а не в странице переводчика)
Сможете помочь?
добавлено
Дело в том, что этот гугл переводчик сайтов переводит не все страницы, например если я перевожу английский форум то нужно вводить логин и пароль (даже если я авторизирован) да и то это не всегда срабатывает (вернее почти никогда не срабатывает) и страница остается непереведенной
А тот способ что интегрирован в гугл тулбар переводит абсолютно любые страницы.
Вот для примера сайт который непереводим в переводчике сайтов (дам логин и пароль, если надо) а из ГуглТулбара все прекрасно переводится
http://hypershot.hyperboards.com/action … d/7/start/
Кстати этот способ (что в тулбаре) интегрирован в ГуглХром - он там по умолчанию.
Отредактировано leex (13-02-2012 15:18:19)
Отсутствует
интегрирован в ГуглХром, (гугл тулбар)
если именно такой(из конт. меню и т.д.), то Wiktionary and Google Translate. или "гуглевский" букмарклет (см. внизу стр.) (но он не всегда работает, даже на тех стр. которые Wiktionary and Google Translate переводит без проблем).
2. мне понравилась №4065(установил такую) и ↓ ... развитие(редакция) Context translate(Firefox) чего-чего, а переводчиков выбор, ну очень велик.
Отсутствует
vitalii201
Спасибо за ответ! Я все эти переводчики уже протестировал. И остановил свой выбор на вышеупомянутой кнопке от bunda1
Все устраивает, все функции супер!
Единственное что хочу переделать: только перевод всей страницы ГуглТулбарным способом
Отредактировано leex (13-02-2012 15:30:20)
Отсутствует
leex
таак! ) что есть:"перевод всей страницы ГуглТулбарным способом"? кн. Translate и перевод из кон. меню при помощи Wiktionary and Google Translate имхо такой же как в и баре. единственное, что в аддоне есть кнопка "х", а в Translate она не предусмотрена т.е. надо просто нажимать "⇦ ", чтобы вернуться к ориг. стр.
Отредактировано vitalii201 (13-02-2012 18:50:57)
Отсутствует
vitalii201
таак! ) что есть:"перевод всей страницы ГуглТулбарным способом"?
Не знаю как правильно выразиться, это такой же способ, что в Wiktionary and Google Translate в контекстном меню "Тranslate Page"
Ну а в кнопке от bunda1 можно ли удалить старый перевод всей страницы и прикрутить этот функционал?
Все другие функции в кнопке оставить. Оч нравится как в кнопке от bunda1 переводится выделенный текст (в новой вкладке моего любимого переводчика )
И самый смак - это перевод из буфера обмена нажатием СКМ (вставляет текст из буфера сразу же в переводчик Гугл, а не во всплывающие окна)
Очень здорово, что все три способа перевода висят на одной кнопке, нет необходимости открывать контекстное меню, искать там "Тranslate Page" и плодить другие кнопки переводчиков в панели инструментов.
Отредактировано leex (13-02-2012 17:20:25)
Отсутствует
на той же странице, а не в странице переводчика
может не настроено в кн.
Отсутствует
vitalii201
Это что за переводчик Вы показываете?
добавленно
Если всю страницу переводить в текущей вкладке, то страница подгружается в переводчик, который не работает для http://hypershot.hyperboards.com/action … d/7/start/ и им подобным
Отредактировано leex (13-02-2012 19:08:00)
Отсутствует
vitalii201Это что за переводчик Вы показываете?
)))
Вау! Нашел самую лучшую кнопку для переводов текста!!! Это то, что надо
bunda1 Уважуха Вам!!
http://forum.mozilla-russia.org/viewtop … 50#p486850
Отсутствует