У меня есть локальный HTML-файл, который я использую в качестве домашней страницы новой вкладки браузера и который, среди прочего, содержит множество веб-форм поисковой системы, которые можно отправлять. для каждой поисковой системы скрыт до тех пор, пока не будет нажата ссылка, например: .
Когда страница загружается и когда хэш URL-адреса изменяется, я запускаю свою функцию Javascript, чтобы поместить курсор в поле поисковой системы. Это отлично работает, пока та же ссылка не будет нажата еще раз. Когда это происходит, щелчок по удаляет курсор из поля , но поскольку хеш URL-адреса не изменяется, моя функция размещения курсора не запускается повторно.
Какой самый простой код Javascript я могу добавить (без библиотек), чтобы моя функция запускалась при нажатии того же идентификатора привязки снова?
Я просмотрел другие вопросы и нашел только один соответствующий вопрос, но решения там были только для JQuery (и более сложные, чем мне нужно).
Я действительно новичок в Javascript, но предполагаю, что мне нужен прослушиватель, который реагирует на клики , а затем запускает мою функцию. Я попробовал несколько вещей, которые нашел при поиске в Интернете, но не смог заставить их работать.
Фрагмент кода, демонстрирующий проблему:
Код: Выделить всё
function focusOnSearch() {
var urlAnchorId = window.location.hash.substring(1);
document.getElementById(urlAnchorId).getElementsByTagName("input").item(0).focus();
}
window.addEventListener("hashchange", focusOnSearch);
window.addEventListener("load", focusOnSearch);Код: Выделить всё
/* Hide all search engines by default */
.Startpage, .DuckDuckGo, .Wayback, .Bing, .Google, .YouTube, .Google_Images, .OpenGameArt, .FreeSound, .Amazon {
display : none;
}
/* Display search engine when its named anchor is active */
#Startpage:target.Startpage, #DuckDuckGo:target.DuckDuckGo, #Wayback:target.Wayback, #Bing:target.Bing, #Google:target.Google, #YouTube:target.YouTube, #Google_Images:target.Google_Images, #OpenGameArt:target.OpenGameArt, #FreeSound:target.FreeSound, #Amazon:target.Amazon {
display : block;
}Код: Выделить всё
Web Search
[list]
Startpage[/url]
[url=#DuckDuckGo]DuckDuckGo[/url]
[url=#Bing]Bing[/url]
[url=#Google]Google[/url]
[url=#Google_Images]Google Images[/url]
[/list]
Misc
[list]
[url=#Wayback]Wayback Machine[/url]
[url=#YouTube]YouTube[/url]
[url=#Amazon]Amazon[/url]
[/list]
Free Assets
[list]
[url=#OpenGameArt]OpenGameArt[/url]
[url=#FreeSound]FreeSound[/url]
[/list]
Подробнее здесь: https://stackoverflow.com/questions/797 ... cript-only