mirror of
https://github.com/DevJSTAR/JSTAR-Tab.git
synced 2025-04-18 17:35:26 +00:00
80 lines
2.6 KiB
JavaScript
80 lines
2.6 KiB
JavaScript
const search = {
|
|
engines: {
|
|
google: {
|
|
url: 'https://www.google.com/search?q=',
|
|
icon: 'https://www.google.com/s2/favicons?domain=google.com&sz=32',
|
|
name: 'Google'
|
|
},
|
|
bing: {
|
|
url: 'https://www.bing.com/search?q=',
|
|
icon: 'https://www.google.com/s2/favicons?domain=bing.com&sz=32',
|
|
name: 'Bing'
|
|
},
|
|
duckduckgo: {
|
|
url: 'https://duckduckgo.com/?q=',
|
|
icon: 'https://www.google.com/s2/favicons?domain=duckduckgo.com&sz=32',
|
|
name: 'DuckDuckGo'
|
|
},
|
|
brave: {
|
|
url: 'https://search.brave.com/search?q=',
|
|
icon: 'https://www.google.com/s2/favicons?domain=brave.com&sz=32',
|
|
name: 'Brave'
|
|
},
|
|
qwant: {
|
|
url: 'https://www.qwant.com/?q=',
|
|
icon: 'https://www.google.com/s2/favicons?domain=qwant.com&sz=32',
|
|
name: 'Qwant'
|
|
},
|
|
searxng: {
|
|
url: 'https://searx.be/search?q=',
|
|
icon: 'https://www.google.com/s2/favicons?domain=searx.be&sz=32',
|
|
name: 'SearXNG'
|
|
}
|
|
},
|
|
|
|
init: () => {
|
|
const searchBar = document.getElementById('search-bar');
|
|
const searchButton = document.getElementById('search-button');
|
|
|
|
searchBar.addEventListener('keypress', (e) => {
|
|
if (e.key === 'Enter') {
|
|
search.perform();
|
|
}
|
|
});
|
|
|
|
searchButton.addEventListener('click', search.perform);
|
|
|
|
document.addEventListener('keydown', (e) => {
|
|
if (e.key === '/' &&
|
|
!['INPUT', 'TEXTAREA'].includes(document.activeElement.tagName) &&
|
|
window.getSelection().toString() === '') {
|
|
e.preventDefault();
|
|
searchBar.focus();
|
|
}
|
|
});
|
|
|
|
const searchEngine = Storage.get('searchEngine') || 'google';
|
|
search.updateSearchEngineIcon(searchEngine);
|
|
},
|
|
|
|
updateSearchEngineIcon(engine) {
|
|
const searchIcon = document.querySelector('#search-container .search-icon img');
|
|
if (!searchIcon) return;
|
|
searchIcon.src = this.engines[engine].icon;
|
|
},
|
|
|
|
perform: () => {
|
|
const searchBar = document.getElementById('search-bar');
|
|
const query = searchBar.value.trim();
|
|
const engine = Storage.get('searchEngine') || 'google';
|
|
|
|
if (query) {
|
|
const searchUrl = search.engines[engine].url + encodeURIComponent(query);
|
|
window.location.href = searchUrl;
|
|
}
|
|
}
|
|
};
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
search.init();
|
|
}); |