Страницы: 1
Давно пользуюсь таким аддоном как in10search
Он, короче, добавляет в контекстное меню правой кнопки мыши для выделенного текста пункт "Result for ...". При клике по нему разворачивается меню следующего уровня в котором видны 4 топовых результата выдачи гугла для выделенного текста.
Очень удобно. Не надо лезть в гугл, чтобы узнать значение непонятного тебе термина, фразы.
Достаточно их выделить мышкой и посмотреть выдачу гугла в контекстном меню.
Только вот с недавнего времени (наверное с полгода, может чуть больше) он стал глючить.
Это проявляется в том, что пункт меню "Result for ..." появляется примерно на полсекунды и исчезает.
И даже когда успеваешь по нему кликнуть - ничего не происходит. Просто пункт меню "схлопывается" и все.
Я это связываю с тем, что гугл поменял URL-ы своих сервисов.
Т.е. (как мне кажется - может я ошибаюсь) дело не в Firefox. Так как глюки начались при том, что я ничего не менял в Firefox. Ничего не устанавливал, не удалял, не обновлял.
Пробовал сам расковырять XPI-файл расширения и поправить JS-ы - ничего не вышло.
Я очень плохо разбираюсь в написании расширений.
Помогите разобраться: почему пункт меню "Serach for ..." самопроизвольно "схлопывается".
Да. Firefox у меня версии 35.0.1
Добавлено 13-09-2016 13:16:57
Вот код функции, в которой, как мне кажется, проблема.
//event called when user right clicks to bring up context menu in10.contextSearchLoad = function(){ var g = gContextMenu; var gr = document.getElementById('in10ContextMenuLabel'); var popup = document.getElementById('in10ContextMenu'); //setup search text var t = this.getText().replace(/[\~\!\#\$\%\^\*\:\(\)\<\>\[\]\{\}\;\'\-\=\+\,\?\/\\]/g,' '); if (!t && g.onTextInput) t=g.target.value.substr(g.target.selectionStart,g.target.selectionEnd-g.target.selectionStart); t = in10.trim(t); if(t.length>100) t = t.substr(0,100).replace(/[^ ]+$/,''); //if no text, then hide menu if (!t) { document.getElementById('in10ContextMenuLabel').setAttribute('hidden','true'); return; } gr.setAttribute('hidden','false'); var tp = t.substr(0,20); tp = tp.replace(/^[ \r\n]+/,''); if (tp.indexOf(' ')>-1) tp=tp.replace(/ [^ ]+$/,''); if (!tp) tp = t; if (tp!=t) tp+='...'; gr.setAttribute('label', in10.s("results_for")+tp+'"'); t = encodeURIComponent(t); //remove prior while(popup.firstChild) popup.removeChild(popup.firstChild); //web 10 results var reqUrl; reqUrl = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q="+t; var grUrl = "http://www.google.com/search?q="+t; gr.setAttribute('value', grUrl); gr.setAttribute('image', "http://www.google.com/favicon.ico"); //set a placeholder, so we have an item to "add after" var ph = document.createElement("menuitem"); ph.setAttribute("id", "in10-resultMenuPlaceholder"); popup.appendChild(ph); ph.setAttribute('hidden', 'true'); //launch request in10.xhr(reqUrl, function(d){ in10.contextSearchProcess(d) }, null,null,null,null,null); }
Из-за чего тут может самопроизвольно "схлопываться" пункт меню?
Отредактировано Доктор ТуамОсес (13-09-2016 13:16:57)
Отсутствует
Я это связываю с тем, что гугл поменял URL-ы своих сервисов.
"The Google Web Search API is no longer available. Please migrate to the Google Custom Search API (https://developers.google.com/custom-search/)"
Я бы вам поправил, если бы не:
Each Custom Search engine is identified by a unique ID created by combining a user ID with a Custom Search engine ID, separated by a colon, like this:
https://developers.google.com/custom-search/docs/api
А так, без меня, сами регистрируйтесь и получайте ключ.
Отсутствует
turbot
Спасибо большое за ответ
Но честно говоря мне грустно.
Придется искать другие аддоны.
Хотя мне пока не попадались такие, которые реализуют подобный функционал.
Ведь в принципе, наверное, можно и без API считать первые 3 результата выдачи поисковика?
Просто в тупую загружая страницу и парся её
Добавлено 13-09-2016 19:49:22
А у янекса такой API есть?
Бесплатный.
Отредактировано Доктор ТуамОсес (13-09-2016 19:49:22)
Отсутствует
Ведь в принципе, наверное, можно и без API считать первые 3 результата выдачи поисковика?
Это надо все переписывать. Тут я пас. Это уже "просто поправить". Не осилю. Попросите в теме CB, может кто и не поленится.
Бесплатный.
Он и у Гугла бесплатный при
100 queries per day for free
. Про яндекс без понятия.
Отсутствует
Страницы: 1