fixed bug
This commit is contained in:
1 parent
0714b8eb48
commit
d93167a114
4 files changed
+49
-14
No files matched your search
@@ -37,6 +37,19 @@
|
|||||||
// 检查 Artalk 实例并尝试获取数据
|
// 检查 Artalk 实例并尝试获取数据
|
||||||
const checkArtalk = () => {
|
const checkArtalk = () => {
|
||||||
if (isResolved) return;
|
if (isResolved) return;
|
||||||
|
|
||||||
|
// 如果当前页面没有评论区,不要等待 Artalk 初始化,直接返回空
|
||||||
|
// 这样可以避免在无评论页(如首页)长时间等待超时
|
||||||
|
const hasCommentSection = document.getElementById('artalk') ||
|
||||||
|
document.getElementById('Comments') ||
|
||||||
|
document.querySelector('.atk-comment-wrap');
|
||||||
|
if (!hasCommentSection) {
|
||||||
|
// 延迟一点点返回,确保逻辑统一
|
||||||
|
setTimeout(() => {
|
||||||
|
tryResolve([], 'no-comment-section');
|
||||||
|
}, 100);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (window.artalk) {
|
if (window.artalk) {
|
||||||
// 1. 尝试绑定事件 (只绑定一次)
|
// 1. 尝试绑定事件 (只绑定一次)
|
||||||
@@ -358,13 +371,14 @@
|
|||||||
document.getElementById('Comments') ||
|
document.getElementById('Comments') ||
|
||||||
document.querySelector('.atk-comment-wrap');
|
document.querySelector('.atk-comment-wrap');
|
||||||
|
|
||||||
if (!hasCommentSection) {
|
// 即使没有评论区,也不要隐藏弹幕,允许 Hitokoto 或上一页的数据继续播放
|
||||||
// console.log('[Barrage] 当前页面无评论区,隐藏弹幕');
|
// if (!hasCommentSection) {
|
||||||
if (barrageInstance) {
|
// // console.log('[Barrage] 当前页面无评论区,隐藏弹幕');
|
||||||
barrageInstance.hide();
|
// if (barrageInstance) {
|
||||||
}
|
// barrageInstance.hide();
|
||||||
return;
|
// }
|
||||||
}
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
// 1. 获取容器,如果没有则动态创建
|
// 1. 获取容器,如果没有则动态创建
|
||||||
let container = document.querySelector('.barrager');
|
let container = document.querySelector('.barrager');
|
||||||
|
|||||||
@@ -232,17 +232,38 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Safe Get Comment List Helper
|
||||||
|
function getCommentListSafe(artalkInstance) {
|
||||||
|
var inst = artalkInstance || window.artalk;
|
||||||
|
if (!inst) return [];
|
||||||
|
|
||||||
|
if (typeof inst.getCommentList === 'function') return inst.getCommentList();
|
||||||
|
if (typeof inst.getComments === 'function') return inst.getComments();
|
||||||
|
|
||||||
|
// Try context access (Artalk v2)
|
||||||
|
if (inst.ctx && typeof inst.ctx.get === 'function') {
|
||||||
|
var list = inst.ctx.get('list');
|
||||||
|
if (list && typeof list.getComments === 'function') {
|
||||||
|
return list.getComments();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
function setupArtalkHook(artalk) {
|
function setupArtalkHook(artalk) {
|
||||||
// Initial load
|
// Initial load
|
||||||
var list = artalk.getCommentList();
|
var list = getCommentListSafe(artalk);
|
||||||
if (list && list.length > 0) {
|
if (list && list.length > 0) {
|
||||||
processComments();
|
processComments();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listen for updates
|
// Listen for updates
|
||||||
artalk.on('list-loaded', function() {
|
if (typeof artalk.on === 'function') {
|
||||||
setTimeout(processComments, 500);
|
artalk.on('list-loaded', function() {
|
||||||
});
|
setTimeout(processComments, 500);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Performance Optimized: Build Index Once
|
// Performance Optimized: Build Index Once
|
||||||
@@ -284,7 +305,7 @@
|
|||||||
});
|
});
|
||||||
document.querySelectorAll('.paragraph-comment-count').forEach(el => el.remove());
|
document.querySelectorAll('.paragraph-comment-count').forEach(el => el.remove());
|
||||||
|
|
||||||
var comments = window.artalk.getCommentList();
|
var comments = getCommentListSafe(window.artalk);
|
||||||
var quoteMap = {};
|
var quoteMap = {};
|
||||||
|
|
||||||
// Group comments by quote
|
// Group comments by quote
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
site: '{{ .Site.Params.artalk.site }}',
|
site: '{{ .Site.Params.artalk.site }}',
|
||||||
aiBadge: '{{ .Site.Params.artalk.ai_badge | default "AI" }}',
|
aiBadge: '{{ .Site.Params.artalk.ai_badge | default "AI" }}',
|
||||||
pageKey: '{{ .RelPermalink }}',
|
pageKey: '{{ .RelPermalink }}',
|
||||||
emoticons: '{{ .Site.Params.artalk.emoticons | relURL }}',
|
emoticons: '{{ .Site.Params.artalk.emoticons | absURL }}',
|
||||||
aiComment: {{ if .Params.ai_comment }}
|
aiComment: {{ if .Params.ai_comment }}
|
||||||
{{ $avatar := .Site.Params.ai.avatar }}
|
{{ $avatar := .Site.Params.ai.avatar }}
|
||||||
{{ if not $avatar }}{{ $avatar = .Site.Params.author.avatar }}{{ end }}
|
{{ if not $avatar }}{{ $avatar = .Site.Params.author.avatar }}{{ end }}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
artalk: {
|
artalk: {
|
||||||
server: "{{ .Site.Params.artalk.server }}",
|
server: "{{ .Site.Params.artalk.server }}",
|
||||||
site: "{{ .Site.Params.artalk.site }}",
|
site: "{{ .Site.Params.artalk.site }}",
|
||||||
emoticons: "{{ .Site.Params.artalk.emoticons | relURL }}",
|
emoticons: "{{ .Site.Params.artalk.emoticons | absURL }}",
|
||||||
gravatar: "{{ .Site.Params.artalk.gravatar }}"
|
gravatar: "{{ .Site.Params.artalk.gravatar }}"
|
||||||
},
|
},
|
||||||
author: {
|
author: {
|
||||||
|
|||||||
Reference in new issue
Block a user