File size: 2,335 Bytes
c183e7a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | document.addEventListener('DOMContentLoaded', () => {
const searchInput = document.getElementById('search-input');
const searchButton = document.getElementById('search-button');
const resultsContainer = document.getElementById('results');
searchButton.addEventListener('click', performSearch);
searchInput.addEventListener('keypress', (e) => {
if (e.key === 'Enter') {
performSearch();
}
});
async function performSearch() {
const query = searchInput.value;
if (!query) return;
resultsContainer.innerHTML = '<p>Загрузка результатов...</p>';
try {
const response = await fetch(`https://cors-anywhere.herokuapp.com/https://www.google.com/search?q=${encodeURIComponent(query)}&tbm=search`);
const html = await response.text();
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
displayResults(doc);
} catch (error) {
console.error('Error fetching search results:', error);
resultsContainer.innerHTML = '<p>Произошла ошибка при поиске. Пожалуйста, попробуйте еще раз.</p>';
}
}
function displayResults(doc) {
resultsContainer.innerHTML = '';
const searchResults = doc.querySelectorAll('.g');
if (searchResults.length === 0) {
resultsContainer.innerHTML = '<p>Результаты не найдены.</p>';
return;
}
searchResults.forEach((result, index) => {
const title = result.querySelector('h3')?.textContent;
const link = result.querySelector('a')?.href;
const snippet = result.querySelector('.VwiC3b')?.textContent;
if (title && link && snippet) {
const resultItem = document.createElement('div');
resultItem.classList.add('result-item');
resultItem.style.animationDelay = `${index * 0.1}s`;
resultItem.innerHTML = `
<h2><a href="${link}" target="_blank">${title}</a></h2>
<p>${snippet}</p>
`;
resultsContainer.appendChild(resultItem);
}
});
}
}); |