fix: mode-toggle leads to Disqus loading failure (#945)
This commit is contained in:
parent
0d9cec6abc
commit
6fec411c18
1 changed files with 18 additions and 23 deletions
|
@ -1,41 +1,39 @@
|
||||||
<!--
|
<!-- The Disqus lazy loading. -->
|
||||||
The Disqus lazy loading.
|
|
||||||
-->
|
|
||||||
<div id="disqus_thread" class="pt-2 pb-2">
|
<div id="disqus_thread" class="pt-2 pb-2">
|
||||||
<p class="text-center text-muted small">
|
<p class="text-center text-muted small">Comments powered by <a href="https://disqus.com/">Disqus</a>.</p>
|
||||||
Comments powered by <a href="https://disqus.com/">Disqus</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
var disqus_config = function () {
|
var disqus_config = function () {
|
||||||
this.page.url = '{{ page.url | absolute_url }}';
|
this.page.url = '{{ page.url | absolute_url }}';
|
||||||
this.page.identifier = '{{ page.url }}';
|
this.page.identifier = '{{ page.url }}';
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Lazy loading */
|
/* Lazy loading */
|
||||||
var disqus_observer = new IntersectionObserver(function (entries) {
|
var disqus_observer = new IntersectionObserver(
|
||||||
if(entries[0].isIntersecting) {
|
function (entries) {
|
||||||
|
if (entries[0].isIntersecting) {
|
||||||
(function () {
|
(function () {
|
||||||
var d = document, s = d.createElement('script');
|
var d = document,
|
||||||
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
s = d.createElement('script');
|
||||||
s.setAttribute('data-timestamp', +new Date());
|
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
|
||||||
(d.head || d.body).appendChild(s);
|
s.setAttribute('data-timestamp', +new Date());
|
||||||
|
(d.head || d.body).appendChild(s);
|
||||||
})();
|
})();
|
||||||
|
|
||||||
disqus_observer.disconnect();
|
disqus_observer.disconnect();
|
||||||
}
|
}
|
||||||
}, { threshold: [0] });
|
},
|
||||||
|
{ threshold: [0] }
|
||||||
|
);
|
||||||
|
|
||||||
disqus_observer.observe(document.querySelector('#disqus_thread'));
|
disqus_observer.observe(document.querySelector('#disqus_thread'));
|
||||||
|
|
||||||
/* Auto switch theme */
|
/* Auto switch theme */
|
||||||
function reloadDisqus() {
|
function reloadDisqus() {
|
||||||
if (event.source === window && event.data &&
|
if (event.source === window && event.data && event.data.direction === ModeToggle.ID) {
|
||||||
event.data.direction === ModeToggle.ID) {
|
|
||||||
/* Disqus hasn't been loaded */
|
/* Disqus hasn't been loaded */
|
||||||
if (typeof DISQUS === "undefined") {
|
if (typeof DISQUS === 'undefined') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,10 +43,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const modeToggle = document.querySelector(".mode-toggle");
|
if (document.querySelector('.mode-toggle')) {
|
||||||
|
window.addEventListener('message', reloadDisqus);
|
||||||
if (typeof modeToggle !== "undefined") {
|
|
||||||
window.addEventListener("message", reloadDisqus);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in a new issue