diff --git a/src/disqus.js b/src/disqus.js index 6bac2c3..e5af75f 100644 --- a/src/disqus.js +++ b/src/disqus.js @@ -130,11 +130,12 @@ return `${y}-${m}-${d} ${h}:${minute}`; } + const d = document; + /* * loadDisqus() - 加载 Disqus */ function loadDisqus() { - let d = document; let s = d.createElement('script'); // 显示提示信息 @@ -166,31 +167,33 @@ // 如果测试域名数量不等于测试次数则说明测试还没有完成,不执行任何操作 } - for (let i of domain) { - ((i) => { - let img = new Image; - // 处理加载超时 - let timeout = setTimeout(() => { - img.onerror = img.onload = null; - test++; - checker() - }, 3000); - - img.onerror = () => { - clearTimeout(timeout); - test++; - checker() - } + let runcheck = (domain) => { + let img = new Image; + // 处理加载超时 + let timeout = setTimeout(() => { + img.onerror = img.onload = null; + test++; + checker() + }, 3000); + + img.onerror = () => { + clearTimeout(timeout); + test++; + checker() + } - img.onload = () => { - clearTimeout(timeout); - test++; - success++; - checker() - } + img.onload = () => { + clearTimeout(timeout); + test++; + success++; + checker() + } - img.src = `https://${i}/favicon.ico?${+(new Date)}` - })(i); + img.src = `https://${domain}/favicon.ico?${+(new Date)}` + } + + for (let i of domain) { + runcheck(i); } } @@ -226,7 +229,7 @@ */ - let d = document; + d.getElementById('disqus_thread').innerHTML = `
`; // DisqusJS 加载中信息 d.getElementById('dsqjs-msg').innerHTML = `评论基础模式加载中。如需完整体验请针对 disq.us | disquscdn.com | disqus.com 启用代理并 尝试完整 Disqus 模式 | 强制完整 Disqus 模式。` @@ -243,11 +246,11 @@ let url = `${disqusjs.config.api}3.0/threads/list.json?forum=${disqusjs.config.shortname}&thread=ident:${disqusjs.config.identifier}&api_key=${disqusjs.config.apikey}`; get(url, (res) => { - var d = document; + // 如果只返回一条则找到了对应 thread,否则是当前 identifier 不能找到唯一的 thread // 如果 thread 不唯一则需要进行初始化 if (res.code === 0 && res.response.length === 1) { - var resp = res.response[0]; + let resp = res.response[0]; disqusjs.page = { id: resp.id, title: resp.title, @@ -286,19 +289,21 @@ * @param {string} cursor - 传入 cursor 用于加载下一页的评论 */ let getComment = (cursor) => { + let $loadMoreBtn = d.getElementById('dsqjs-load-more'); + let getMoreComment = () => { // 执行完以后去除当前监听器避免重复调用 $loadMoreBtn.removeEventListener('click', getMoreComment); // 加载下一页评论 getComment(disqusjs.page.next); } - var $loadMoreBtn = document.getElementById('dsqjs-load-more'); + // 处理传入的 cursor if (!cursor) { // 不存在 cursor,API 中不需要带上 cursor 参数 cursor = ''; var getCommentError = () => { - // 不存在 cursor,出错时只需要在 #dsq-msg 中显示提示信息 + // 不存在 cursor,出错时只需要在 #dsqjs-msg 中显示提示信息 loadError(); } } else { @@ -348,14 +353,13 @@ } } else if (res.code === 0 && res.response.length === 0) { // 当前没有评论,显示提示信息 - let d = document; d.getElementById('dsqjs-msg').innerHTML = '你可能无法访问 Disqus,已启用评论基础模式。如需完整体验请针对 disq.us | disquscdn.com | disqus.com 启用代理并 尝试完整 Disqus 模式 | 强制完整 Disqus 模式。' d.getElementById('dsqjs-header').classList.remove('dsqjs-hide') d.getElementById('dsqjs-post-container').innerHTML = '