Dmitriy_2014

Dmitriy_2014
Рейтинг
370
Регистрация
01.07.2014
Интересы
Веб-технологии
livetv #:

А как же ошибка в Pagespeed: "ссылки невозможно просканировать"

Или ее уже нет?

Хотя на это можно забить.

Да, похоже вы правы:

PageSpeed Insights рапортует:

Ссылки невозможно просканировать

Поисковые системы при сканировании сайтов учитывают содержащиеся в ссылках атрибуты href. Чтобы на вашем сайте могло быть проиндексировано максимально возможное количество страниц, атрибуты href в анкерах должны корректно ссылаться на целевые страницы.

Для тех ссылок у которых убран href, то есть моих псевдокнопок.

Рекомендует сделать ссылки доступными - https://support.google.com/webmasters/answer/9112205.

Теперь другой вопрос, стоит ли из-за этого переделывать их на span? (Так не хочется ничего переделывать, т.к. уже все работает!)
Антоний Казанский #:

Для html 5 теперь необязательный атрибут.

Но если не планируете использование якорных ссылок, то и не стоит рассматривать тег <a>.

Дизайн завязан на a, в css идет класс а-ля “.обертка a”(там куча свойств) и нужно будет дублировать тоже самое для span, если переделывать. И к тому же сейчас все нормально работает так как мне хотелось бы, но вот нюанс, и старый холивар из разряда это должна быть кнопка не делайте из ссылки кнопки и кнопки — это не ссылки и т.п. :)

Моё ИМХО личное мнение если уж w3c до лампочки, то думаю и поисковикам тоже, понимаю, что это неправильно, но думаю, что это вообще ни на что не влияет, но естественно я могу ошибаться.
estic #:
Лучше все же добавить href="#" и т.п.
Не href=”#”, оно будет пытаться скролить страницу к верху вроде, а href=”” пустой обновлять, это все ещё хуже. Но есть еще один баг, когда убираешь href, когда подносишь мышку палец нажимания пропадает, хоть это и фиксится курсор поинтером, но странно.
Snake800 #:

По большому счёту да. Есть разница в том, что метод в jQuery ready сработает в любом случае, а DOMContentLoaded может быть не вызван, если событие навешано уже после вызванного браузером события загрузки.

А можно ли сказать что эти методы - document.addEventListener('DOMContentLoaded' и  jQuery(document).ready,

Это тоже самое, если бы я разместил скрипты в footer’е, перед закрывающим тегом body. По сути тоже сначала загрузится страница, а потом скрипты?
Подскажите, это document.addEventListener('DOMContentLoaded', по сути тоже самое что и это jQuery(document).ready? То есть ждет ожидания построения/загрузки DOM и только после него начинает что-то делать?
Snake800 #:

Можно разделить скрипт на 2 части. Вот это -

 оставить в <head>, осталное в подвал вместе с остальными скриптами.

Я вот думаю отдельный js файл сделать, только для переключения темы, или все остальное обернуть в jQuery(document).ready – ну типа чтобы оно потом грузилось.
Snake800 #:

Достаточно в head. Проверено. И да, хорошим тоном является при первом визите устанавливать тему на основе дефолтных настроек юзера.

Да похоже вы правы по поводу head, это вроде работает(даже если скрипт ниже css), я прощелкал 100500 раз, вроде не мелькает вообще. Не, про хороший тон я хочу забыть, т.к. я хочу всего лишь самую простую на белом свете кнопку переключения тем, а она итак превращается в какого-то монстра.

Кстати пару слов о переносе скрипта из футера в хеад, там тоже приколы интересные:

JavaScript говорит мне, что мальчик хочешь на кнопку нажать, а ничего не выйдет, теперь скрипт выше кнопки и поэтому кнопки как бы и нет ХА-ХА – null тебе в ребро :), и в догонку ошибку - Uncaught TypeError: Cannot read properties of null, а ведь до этого все работало когда скрипт был в футере под кнопкой.

Хорошо JavaScript ты не с тем связался, помощь с вестсайдвутангклана подоспела, делаю как этот чувак советует - https://sebhastian.com/javascript-cannot-read-properties-of-null/, ведь мне нужно чтобы теперь кнопка работала со скриптом который в хеад, до кнопки и этот чел советует это:

document.addEventListener('DOMContentLoaded', () => {

  let btnEl = document.getElementById("my-button");

  btnEl?.addEventListener("click", () => alert("You clicked a button!"));

});

И это действительно работает, я не знаю почему и как, но перенос скрипта в хеад и изменение кода как тот чел советовал действительно сработал.

И все вроде бы работает, но все это мне жутко не нравится, ни то что скрипт теперь в хеад, сам скрипт какой-то страшный, плюс 100500 переменных в CSS, лучше бы я ссылку дал на расширение к браузеру Dark Reader, для этих любителей bdsm темных тем, то им в MS-DOS синий экран не нравится, то теперь белый, ну вот они же книги наверное читают, все книги 99% черное на белом, они же не говорят, дайте нам белое на черном, мы же по ночам читаем глазки напрягаем, это же бред какой-то :-), ладно это я шучу :-)
webinfo #:
Ну тоже естественно, потому что исходный CSS  срабатывает  до JS.
Так, а что сделать, перенести JS до CSS?
lutskboy #:
можно добавить  body visibility hidden а при установке темы    visibility visible
Сделать типа как по этому гайду - https://dev.to/whitep4nth3r/the-best-lightdark-mode-theme-toggle-in-javascript-368f, добавив в тег html атрибут data-theme="light"?
divv #:
Если сайт на php, то лучше сразу атрибут добавлять, например в body. Тоесть js использовать для установки и удаления атрибута и запись в куки, а php нужен для установки атрибута сразу при загрузки страницы, чтобы ничего не моргало.
Сайт то на php, но есть нюанс, используется плагин кэширования и страницы отдаются как бы готовыми. Может это как-то влияет?
Всего: 2000