Вопрос или проблема
Есть ли способ добавить пользовательский URL поиска в строку поиска Firefox? Например, мне нужно предоставить URL, такой как http://blahblah.com?search=%s
, где Firefox заменяет %s
на содержимое поискового поля.
И IE, и Opera могут это сделать, но я не могу разобраться, как это настроить в Firefox.
Метод реализации этого изменился – это ответ о том, как это сделать в 2018 году. Читайте ниже, чтобы увидеть более актуальные ответы
Добавьте ключевые слова в адресную строку:
Например, вы можете настроить свой браузер для поиска bread
на stackoverflow.com, просто набрав so bread
в адресной строке.
Сделайте это, щелкнув правой кнопкой мыши по строке поиска на сайте, который вы обычно используете. Вы можете сделать это для поля поиска на любом сайте.
Конкретно:
- Перейдите на сайт, который вы хотите использовать для поиска
- Щелкните правой кнопкой мыши по полю поиска, которое вы заполняете на их странице (не на Firefox)
- Выберите “Добавить ключевое слово”
- Введите ключевое слово, которое вы хотите использовать для поиска на этом сайте (например: “so”)
Я хочу предоставить URL, такой как
http://blahblah.com?search=%s
, где Firefox заменяет%s
на содержимое поискового поля.
Вы можете сделать это с помощью Firefox! Добавьте закладку с этим URL, где %s
– это поисковой запрос, затем просто установите ключевое слово для закладки. Вы сможете искать, используя <key> <search term>
в адресной строке. Например, закладка http://www.google.com/search?q=%s
с ключевым словом g
означает, что вы можете ввести g stack overflow
в адресной строке, чтобы найти “stack overflow” в Google.
Кроме того, перейдите на сайт, который вы хотите искать, щелкните правой кнопкой мыши в поле поиска и нажмите “Добавить ключевое слово для этого поиска”.
Фактический ответ:
@Kleinfrund’s answer актуален, но Firefox не всегда распознает сайты, поддерживающие поиск. Если сайт не отображается, используя метод @Kleinfrund’s, продолжайте читать.
- Откройте новую вкладку и введите в адресной строке:
about:config
- Вводите в строку поиска:
browser.urlbar.update2.engineAliasRefresh
- Щелкните на маленький
+
символ справа. Это должно выглядеть так после нажатия:
- Перейдите в Настройки Firefox → Поиск. Или введите это в адресной строке:
about:preferences#search
- В разделе “Ярлыки поиска” вы должны заметить новую кнопку “Добавить”.
- Нажмите на кнопку “Добавить” и заполните название, URL поисковой системы и ключевое слово (по желанию). URL поисковой системы должен содержать
%s
в URL; Firefox заменяет%s
вашими поисковыми терминами. Пример этого:https://www.google.com/search?q=%s
- Перейдите в раздел “Поисковая система по умолчанию” и выберите добавленную вами поисковую систему.
PS: Это не работает для поисковых систем, работающих с запросами POST.
Фактическое, беззакладочное решение для этой задачи:
-
Откройте веб-страницу, на которой есть поиск (например, SuperUser: superuser.com).
-
В адресной строке расширьте адресную строку, кликнув по ней.
-
Если сайт поддерживает поиск, он появится в нижней области расширенной адресной строки. Нажмите на значок плюс, который окружен зеленым кружком. Это добавляет поиск веб-страницы в поисковые системы в ваших настройках.
Кроме того:
- Откройте веб-страницу, на которой есть поиск (например, SuperUser: superuser.com).
- Щелкните правой кнопкой мыши на адресной строке.
- Если сайт поддерживает поиск, будет возможность добавить его.
Если вы хотите установить ключевое слово (например, su
) для этого поиска, выполните следующие шаги:
- Откройте настройки поиска (или введите следующий URI в адресной строке:
about:preferences#search
) - В таблице под колонкой “Ключевое слово” дважды щелкните для установки своего ключевого слова.
Расширение Добавить пользовательскую поисковую систему позволяет вам создать новую поисковую систему и настроить её.
Ваш лучший вариант – обратиться к Mycroft Project и найти уже созданный плагин поисковой системы.
Если вы не можете найти его, вы можете создать свой собственный на странице отправок. Полные инструкции доступны.
Ready2Search – это также бесплатный сервис, который помогает вам сделать это для любого сайта. Он создает поисковой плагин для Internet Explorer, Firefox, Chrome и Google Toolbar с отличными возможностями настройки (значки, параметры запроса и т.д.).
Альтернативный способ для пользовательского поиска
Например, строка Google Translate: https://translate.google.com/m/translate#auto/en/%s
, так что топ-ответ здесь не работает. Поэтому я нашел обходной путь с помощью плагина: add-custom-search-engine
И вот мы:
Перейдите к:
Новое решение (поскольку предыдущее больше не работает):
Теперь, если вы посещаете такой сайт, как Twitter, Firefox позволит вам легко добавить поиск Twitter (https://support.mozilla.org/en-US/kb/add-or-remove-search-engine-firefox). Но если вы хотите добавить другой сайт, который не поддерживается, вам понадобится веб-сервер, например Apache.
Ниже будет решение для Twitter на случай, если они больше не используют файл поисковой системы opensearch.xml
.
Создайте файл, например twitter_search.htm
(этот исходный код HTML используется на twitter.com, я просто убрал /
перед opensearch.xml
):
<link rel="search" type="application/opensearchdescription+xml" href="opensearch.xml" title="Twitter">
Затем создайте другой файл с тем же именем, которое используется в параметре href предыдущего HTML-кода, например opensearch.xml
с этим содержимым (этот исходный код XML используется на https://twitter.com/opensearch.xml):
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Twitter</ShortName>
<Description>Поиск в Twitter</Description>
<Url type="text/html" method="get" template="https://twitter.com/search?q={searchTerms}"/>
<Image width="16" height="16">https://abs.twimg.com/favicons/favicon.ico</Image>
<InputEncoding>UTF-8</InputEncoding>
<moz:SearchForm>https://twitter.com/search-home</moz:SearchForm>
</OpenSearchDescription>
Если необходимо, настраивайте эти файлы, чтобы изменить URL поиска, URL формы поиска, название, описание и значок. Поместите эти 2 файла в папку вашего веб-сервера и откройте HTML-файл, который вы можете найти, посетив http://localhost в вашем веб-браузере. Вы сможете добавить свою пользовательскую поисковую систему в Firefox.
Предыдущее решение (больше не работает):
Вот как я восстановил поисковую систему Twitter для Firefox, которая, похоже, была удалена в Firefox 78 (вы также можете создать поиск для других сайтов на основе этого ответа):
Я тестировал с версии Firefox для Linux (пакет Ubuntu), но это должно работать на любой операционной системе, создавая папку distribution
/ подпапки и файл плагина поиска (https://wiki.mozilla.org/Mobile/Distribution_Files).
В моей папке профиля .mozilla/firefox/xxx.default/
был файл search-metadata.json
, который содержал ссылку на несуществующий файл /usr/lib/firefox/distribution/searchplugins/locale/en-US/twitter.xml
.
Поэтому я создал этот файл со следующим содержимым (на основе документации https://developer.mozilla.org/en-US/docs/Mozilla/Creating_MozSearch_plugins и уже имеющихся плагинов поиска https://packages.ubuntu.com/focal/amd64/firefox/filelist):
<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Twitter</ShortName>
<Description>Поиск в Twitter</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image height="16" width="16">data:image/x-icon;base64,
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAA
AAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A
////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/
//8A////AP///wD///8A////AP///wD///8A////AP///wz///8f////H////x////8Y////B///
/wD///8A////AP///wD///8A////AP///wD///8A////A////yj7789g9tV+ofbVfqH21X6h+N+e
ifz03lf///8o////A////wD///8A////AP///wD///8A////APr37g/PsGCftogQ7r2JAP/bnwD/
7qwA/+6sAP/urAD/9Mtftv357z////8D////AP///wD///8A////AP///wD///8A////AP///w/5
7c5a88VQwu6sAP/urAD/7qwA/+6sAP/xvDDb/fnvP////wD///8A////AP///wD///8A////AP//
/wDz5L5X7bgv2+6sAP/urAD/7qwA/+6sAP/urAD/7qwA//G8MNv///8Y////AP///wD///8A////
AP///wD///8M9NN+n+6wD/PurAD/7qwA/+6sAP/urAD/7qwA/+6sAP/urAD/9Nyegf///wD///8A
////AP///wD///8A+O3PVu6wD/PurAD/7qwA/+6sAP/urAD/7qwA/+6sAP/urAD/7qwA//G8MNv/
//8A////AP///wD///8A////ANasQMXurAD/7qwA/+qpAP/YnAD/1JkA/+6sAP/urAD/7qwA/+6s
AP/urAD/////FP///wD///8A////AP///wDz255+7qwA/9icAP+6ixDuz7Bgn9m8b5TurAD/7qwA
/+6sAP/urAD/7qwA//jkr3j///8M////AP///wD///8A47Y/ysmRAP/PsGCf+vfuD////wDw584w
46QA/+6sAP/urAD/7qwA/9+hAP/orA/z9OrPQv///wD///8A////AMypT7Hhz55g////AP///wD/
//8A////AMOaL9DMlAD/0JYA/8mRAP/FoEC/vpIf4OPQnmL///8A////AP///wD69+4P////AP//
/wD///8A////AP///wD69+4P3ceOcNi/foHhz55g////APr37g/69+4P////AP///wD///8A////
AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A
////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD/
//8A//8AAP//AAD//wAA8P8AAMA/AAD4HwAA8A8AAOAHAADgBwAAwAcAAOAHAADHAwAA3wMAAP/f
AAD//wAA//8AAA==</Image>
<Url type="text/html" method="get" template="https://twitter.com/search?q={searchTerms}"/>
</OpenSearchDescription>
Чтобы получить Base64 последнего значка Twitter, который вы можете видеть выше, я скачал https://twitter.com/favicon.ico и использовал команду Linux base64 favicon.ico
.
Следующие файлы были в моей папке профиля, но больше не нужны, поэтому я удалил их, чтобы избежать потенциальных конфликтов (можете сделать резервную копию файлов на случай, если захотите их повторно использовать): search-metadata.json
, search.json
, search.json.mozlz4
.
Следующие ответы не сработали для меня, но содержали полезную информацию:
Вы также можете выполнять сложные поиски с несколькими параметрами, и вот как.
Например, вообразите, что у вас есть двухполевая форма поиска, как в этом вымышленном примере:
http:// mymusic.com/search?artist=david+bowie&album=ziggy+stardust
Вы можете сделать новый поиск mm
следующим образом:
javascript:q="%s";if(q.indexOf(",")>0){q=q.split(",");location.href="http://mymusic.com/search?artist="+q[0]+"&album="+q[1]}
(в Firefox это была бы закладка с ключевым словом mm
)
Затем вы сможете непосредственно искать: mm david bowie,ziggy startdust
(непосредственно в адресной строке)
Я выбрал “,” в качестве разделителя, но это просто пример. Это идеально, но вот идея, и возможно всё.
※ Обратите внимание, что некоторые браузеры (включая Opera 12) могут не выполнять ваш JavaScript в новой вкладке без предварительно загруженной страницы.
Для ESR вы можете добавить (и задать по умолчанию) новую поисковую систему с помощью policies.json. Например, используйте следующее:
{
"policies": {
"SearchEngines": {
"Default": "DuckDuckGo",
"Add": [
{
"Name": "DuckDuckGo",
"URLTemplate": "https://duckduckgo.com/?q={searchTerms}&t=h_&kp=1&ia=web",
"Method": "GET",
"IconURL": "https://duckduckgo.com/favicon.ico",
"Alias": "Ducky",
"Description": "Duck Duck Goose"
}
]
}
}
}
Место расположения файла политик описано, например, в этом посте.
Обновление 2022: Теперь вы можете просто щелкнуть правой кнопкой мыши по URL в адресной строке и нажать Добавить <имя сайта>
. Он появится в about:preferences > Ярлыки поиска
, откуда вы можете присвоить ключевое слово.
На момент FF100, для поисковых запросов на веб-сайтах, которые не могут быть добавлены с помощью , решением является использование плагина mozlz4-edit.
FF хранит все поисковые системы в файле search.json.mozlz4
, который нельзя редактировать в обычном текстовом редакторе.
С помощью этого плагина можно непосредственно (но с руководством) добавлять поисковые системы.
Например, добавляя “AllMusic” в качестве поисковой системы:
Если вам нужен значок, вы можете скачать значок с сайта и добавить его тоже.
Замечание: сначала вам нужно найти файл search.json.mozlz4
.
На Win10 он находится в %appdata%\Mozilla\Firefox\Profiles\xx_profile_id_xx.default-release\
Это можно сделать с помощью консоли браузера (меню гамбургера/дополнительные инструменты/консоль браузера
, или ctrl+shift+j
).
Services.search.addUserEngine(
"Google Verbatim",
"https://www.google.com/search?q={searchTerms}&tbs=li:1",
"gv"
);
Чтобы удалить,
Services.search.getEngineByAlias("gv").then(engine => Services.search.removeEngine(engine));
Эта служба задокументирована здесь (похоже, она немного устарела, например, removeEngine не указан; вы можете посмотреть в исходном файле реализации для более полной информации.)
Это так же просто, как щелчок правой кнопкой мыши в поле поиска.
Другим преимуществом является то, что этот процесс создает для вас закладку. Если вы используете что-то вроде XMarks для синхронизации закладок, вы можете получить тот же функционал поиска на всех синхронизированных компьютерах.
Чуть поздно для вечеринки, но для тех, кто сейчас находит эту тему: вы можете щелкнуть символ поиска в строке поиска, когда на сайте, который вы хотите, если он имеет зеленый + символ на нем.
Чтобы имитировать функцию “поиска по сайту” в Chrome: https://www.reddit.com/r/firefox/comments/ob8ffw/question_custom_url_for_duckduckgo_search_when/h3mcfh7/
сработало именно так, как ожидалось, и очень легко настроить
[На август 2022]
Если у вас установлен Duck Duck Go в качестве поисковой системы, !Bangs – это еще один вариант.
Я создал онлайн веб-приложение, которое позволяет вам добавлять пользовательские поисковые системы в Firefox, просто введите информацию, затем нажмите “добавить” и кликните в углу в адресной строке:
https://svelte.dev/repl/8b4c3b768f4041888bd64cbaffbb8135?version=4.1.1
Код Svelte
<script>
let searchUrl="";
let name = "";
let image = "";
let encoding = "UTF-8";
let description = "";
$: error = searchUrl ? (!searchUrl.startsWith('https://') ? 'URL недействителен' : '') : 'URL поиска должен присутствовать';
function getXML({
name,
url,
image,
suggestUrl,
encoding,
description,
usePost,
postParams,
}) {
const XML_TEMPLATE = `<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>####REPLACE####</ShortName>
<Description></Description>
<InputEncoding>UTF-8</InputEncoding>
<Image height="16" width="16"></Image>
<Url type="text/html" method="get" template=""></Url>
<Url type="application/x-suggestions+json" method="get" template=""></Url>
</OpenSearchDescription>`;
const parser = new DOMParser();
const doc = parser.parseFromString(XML_TEMPLATE, "application/xml");
// Название
const shortName = doc.getElementsByTagName("ShortName")[0];
shortName.textContent = name;
// URL поиска
const searchUrl = doc.querySelector('Url[type="text/html"]');
searchUrl.setAttribute("template", url.replace(/\%s/g, '{searchTerms}'));
if (usePost) {
searchUrl.setAttribute("method", "POST");
for (const [name, value] of Object.entries(postParams)) {
const param = doc.createElementNS(
"http://a9.com/-/spec/opensearch/1.1/",
"Param",
);
param.setAttribute("name", name);
param.setAttribute("value", value);
searchUrl.append(param);
}
} else {
searchUrl.setAttribute("method", "GET");
}
// Иконка
const img = doc.getElementsByTagName("Image")[0];
if (image) {
img.textContent = image;
} else {
img.remove();
}
// URL подсказок
const suggestSearchUrl = doc.querySelector(
'Url[type="application/x-suggestions+json"]',
);
if (suggestUrl) {
suggestSearchUrl.setAttribute("template", suggestUrl);
} else {
suggestSearchUrl.remove();
}
// Кодировка ввода
const inputEncoding = doc.getElementsByTagName("InputEncoding")[0];
if (encoding) {
inputEncoding.textContent = encoding;
}
// Описание
const desc = doc.getElementsByTagName("Description")[0];
if (description) {
desc.textContent = description;
} else {
desc.remove();
}
const serializer = new XMLSerializer();
return serializer.serializeToString(doc);
}
async function addSearchEngine(xml){
if (document.querySelector("button")?.disabled){return}
let url = await fetch("https://cors.explosion.workers.dev?https://paste.mozilla.org/api/", {
"credentials": "omit",
"headers": {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0",
"Accept": "*/*",
"Accept-Language": "en-US,en;q=0.5",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin"
},
"body": `content=${encodeURIComponent(xml)}&format=url&lexer=xml`,
"method": "POST",
"mode": "cors"
}).then(r => r.text()).then(t => t.trim());
console.log(url)
window.open(URL.createObjectURL(new Blob([
`
<head><link rel="search" type="application/opensearchdescription+xml" title=${JSON.stringify(name)} href="${url}/raw"></head>
<h1>Щелкните в углу адресной строки и нажмите "Добавить ${name.replace(/[^a-z0-9 ]+/gi, ' ')}"</h1>
<style>body {display: grid; place-items: center; height: 100vh;} h1 {font-family: sans-serif; font-size: 2rem; font-weight: 100; width: 100%; display: block; text-align: center}</style>
`
], {type: 'text/html'})), '_blank')
}
</script>
<div class="container">
<h1>Добавить поисковую систему</h1>
<input bind:value={name} placeholder="Имя"/>
<input bind:value={searchUrl} placeholder="URL поисковой системы (используйте %s для поискового термина)"/>
<input bind:value={description} placeholder="Описание"/>
<input bind:value={image} placeholder="URL изображения (данные URL работают)"/>
<input bind:value={encoding} placeholder="Кодировка"/>
{#if error}<span>{error}</span>{/if}
<button disabled={!!error} on:click={() => addSearchEngine(getXML({name, url: searchUrl, image, encoding: encoding || "UTF-8", description}))}>Добавить</button>
</div>
<style>
span {
font-style: italic;
font-weight: 200;
color: #777;
}
.container {
display: flex;
flex-direction: column;
gap: 10px;
width: 80vw;
max-width: 600px;
margin: 0 auto;
}
input {
padding: 8px 15px;
border-radius: 3px;
border: 1px solid #eee;
}
button {
padding: 8px;
cursor: pointer;
}
h1 {
font-weight: 100;
text-align: center;
width: 100%;
display: block;
}
</style>
Я полагаю, он имеет в виду keyword.URL на странице about:config в Firefox.
В адресной строке Firefox введите about:config
, затем найдите keyword.URL
и замените его содержимое на “https://blahblah.com/search?q=“, например.
.
Ответ или решение
Чтобы добавить собственную поисковую систему в браузер Firefox, следуйте шагам, описанным ниже. Это позволит вам легко выполнять поиск по конкретному URL-адресу, который вы зададите, заменяя %s
на ваш запрос.
Шаги по добавлению индивидуальной поисковой системы в Firefox
-
Создание закладки:
- Откройте Firefox и в адресной строке введите URL-адрес поисковой системы, которую вы хотите использовать, например,
http://blahblah.com?search=%s
. - Нажмите Enter, чтобы загрузить страницу.
- Нажмите на звездочку в адресной строке, чтобы создать закладку.
- Откройте Firefox и в адресной строке введите URL-адрес поисковой системы, которую вы хотите использовать, например,
-
Настройки закладки:
- В появившемся окне «Добавить закладку» вы можете изменить название и добавить описание, если это необходимо.
- После создания закладки откройте Библиотеку (можно нажать
Ctrl+Shift+B
) и найдите вашу новую закладку. Правой кнопкой мыши щелкните по ней и выберите Свойства.
-
Установка ключевого слова:
- В поле Ключевое слово добавьте сокращение, которое вы будете использовать для быстрого поиска. Например, вы можете ввести
поиск
. - Закройте окно свойств.
- В поле Ключевое слово добавьте сокращение, которое вы будете использовать для быстрого поиска. Например, вы можете ввести
-
Использование закладки для поиска:
- Теперь в адресной строке вы можете ввести «поиск ваш_запрос» и нажать Enter. Firefox автоматически заменит
%s
на ваш запрос и выполнит поиск на заданном URL.
- Теперь в адресной строке вы можете ввести «поиск ваш_запрос» и нажать Enter. Firefox автоматически заменит
Альтернативные методы
Если вышеупомянутый способ не подходит или вы хотите добавить поисковую систему непосредственно из сайта, выполните следующие действия:
-
Добавление через контекстное меню:
- Перейдите на сайт, который содержит строку поиска.
- Правой кнопкой мыши щелкните по строке поиска на сайте (не по строке поиска Firefox) и выберите Добавить ключевое слово для этого поиска.
- Заполните название и ключевое слово, затем сохраните.
-
Использование настроек поиска:
- Перейдите в Настройки (или введите в адресной строке
about:preferences#search
). - В разделе Поисковые сокращения нажмите на кнопку Добавить.
- Введите название, URL-адрес с
%s
и, при желании, ключевое слово.
- Перейдите в Настройки (или введите в адресной строке
Создание плагина для поиска
Если ни один из вышеперечисленных методов не подходит, вы можете воспользоваться расширением, например, Add custom search engine. Это расширение позволяет вам создать новый поисковый движок и настроить его по вашему усмотрению.
Заключение
Firefox предлагает множество способов добавления пользовательских поисковых систем, от создания закладок до использования расширений. Таким образом, вы можете настроить свои возможности поиска и улучшить производительность работы в браузере. Убедитесь, что вы следуете всем шагам для правильной настройки, и наслаждайтесь удобством работы с поисковыми системами в Firefox.