feat(comments): AJAX fragment list/submit + load-more parity
Add REST comment/list + comment/submit HTML fragments, shared query renderer for order/author/hottest, fix load-more policy and DOM targets, and stop full-page scrapes for order/author/reload.
This commit is contained in:
1 parent
0342aad9fb
commit
00d335ba16
8 files changed
+648
-222
No files matched your search
@@ -28,7 +28,7 @@
|
||||
if (!window.aksrtData) return;
|
||||
|
||||
var COMMENT_SELECTOR = '.aksrt-comment, .comment';
|
||||
var CONTENT_SELECTOR = '.aksrt-comment__text';
|
||||
var CONTENT_SELECTOR = '.aksrt-comment__text, .comment-content';
|
||||
|
||||
var REST_BASE = (aksrtData.siteUrl || '').replace(/\/$/, '') + '/wp-json/aksrt/v1';
|
||||
var REST_NONCE = aksrtData.restNonce || '';
|
||||
@@ -174,7 +174,17 @@
|
||||
commentEl.style.maxHeight = '0';
|
||||
commentEl.style.overflow = 'hidden';
|
||||
});
|
||||
setTimeout(function () { commentEl.remove(); }, 300);
|
||||
setTimeout(function () {
|
||||
commentEl.remove();
|
||||
var countEl = document.querySelector('.comments-count');
|
||||
if (countEl) {
|
||||
var m = (countEl.textContent || '').match(/(\d+)/);
|
||||
if (m) {
|
||||
var n = Math.max(0, parseInt(m[1], 10) - 1);
|
||||
countEl.textContent = (countEl.textContent || '').replace(m[1], String(n));
|
||||
}
|
||||
}
|
||||
}, 300);
|
||||
} else {
|
||||
notify((result.data && result.data.message) || result.message || '删除失败', 'error');
|
||||
}
|
||||
@@ -206,7 +216,7 @@
|
||||
}
|
||||
|
||||
function syncPinnedBadge(commentEl, pinned) {
|
||||
var header = commentEl.querySelector('.aksrt-comment__header');
|
||||
var header = commentEl.querySelector('.aksrt-comment__header, .comment-header');
|
||||
if (!header) return;
|
||||
var badge = header.querySelector('.aksrt-comment__badge--pinned');
|
||||
if (pinned && !badge) {
|
||||
|
||||
Reference in new issue
Block a user