Якорные ссылки Disqus «#disqus_thread» не работают - PullRequest
0 голосов
/ 18 января 2019

При посещении URL моего блога со ссылкой на Disqus (например, url-to / my-blog-post # disqus_thread ) браузер не прокручивается до <div id="disqus_thread">element.

Вместо этого, если я уже на странице url-to / my-blog-post и нажмите ссылку на url-to / my-blog-post # disqus_thread он прокручивается до div.

Я думал, что это проблема с загрузкой.Браузер посещает страницу и не находит элемент div, так как он все еще должен генерироваться Disqus JS.Я пытался изменить положение кода JS, но ничего не изменилось.

Это пример URL-адреса поста из моего блога: https://2bluebuffalo -en.blogspot.com / 2018/11 / how-to-crop-square-video-macos.html # disqus_thread Не работает, но если щелкнуть ссылку рядом с «By Blue Buffalo» (над кнопками общего доступа, теперь написано «2 комментария»), якорьссылка работает.


Обходной путь

Хорошо, это обходной путь, который я нашел.Это работает просто хорошо.На всякий случай, если кто-то нажмет эту ссылку.

<script>
setTimeout(function(){
 var hash = window.location.hash.substr(1);
  if (hash == "disqus_thread") {
    location.hash = "#comments";
    location.hash = "#" + hash;
  };
}, 1000);
</script>

Ожидание происходит потому, что это занимает у меня одну секунду.загрузить все (иногда даже больше).Это можно изменить.

1 Ответ

0 голосов
/ 25 января 2019

Вы можете попробовать этот хак:

Редактируйте HTML-код блога и добавляйте сценарии Disqus. Для ваших комментариев вы можете сделать это:

<div id = "comments">
    <div id = "disqus_thread"></div>
</div>

Это приведет вас в раздел комментариев и загрузит комментарии Disqus.

...