Я пытался вставить этот код [...], но ничего не происходит, когда я вызываю его.
Когда вы используете поисковую систему из омнибокса, она просто преобразует строку запроса в URL. Это хорошо работает с реальными URL, но может потерпеть неудачу с javascript:
Вы сможете использовать этот пользовательский поиск, если вы находитесь на вкладке с обычным веб-сайтом, но не, если вы смотрите, например, на новую вкладку или страницу настроек . Причина в том, что Chrome отключает URL-адреса javascript:
в любой форме (прямой вызов из омнибокса, пользовательский поиск, закладки и т.д.) Для внутреннего chrome://
pages (источник).
Это делается из соображений безопасности, поскольку эти страницы часто содержат конфиденциальную информацию (например, « Новая вкладка» содержит ссылки на наиболее посещаемые веб-сайты), и JavaScript может получить доступ к этой информации и разглашать ее.
Возможно ли заставить это работать так или иначе в Chrome? Я бы предпочел добиться этого без расширений.
Я не думаю, что есть простой способ достичь этого, поскольку любая попытка автоматически открыть несколько вкладок с общей HTML-страницы приведет к появлению нескольких новых окон (если это не требуется).
Лучшим способом решения этой проблемы, вероятно, будет расширение.
Другие варианты:
Продолжайте использовать свой существующий подход.
Просто убедитесь, что вы не открываете новую вкладку перед поиском. Поскольку ваш пользовательский поиск не изменяет существующую вкладку, вы можете привыкнуть к этому.
"Расширить" ваш поиск с помощью закладки.
Оставьте Google (например) в качестве поиска по умолчанию и создайте следующую закладку:
Name: Extend Google search
URL: javascript:var q=document.location.search.match(/[?&][pq]=(.*?)(&|$)/)[1];window.open('http://www.altavista.com/web/results?q='+q);window.open('http://www.bing.com/search?q='+q);void(0)
Нажатие на закладку после выполнения поиска в Google приведет к поиску во всех других движках.