diff --git a/public/s/js/f0ckm.js b/public/s/js/f0ckm.js
index 14a4d4c..3f40d3e 100644
--- a/public/s/js/f0ckm.js
+++ b/public/s/js/f0ckm.js
@@ -38,11 +38,23 @@ window.cancelAnimFrame = (function () {
};
window.getCurrentItemId = () => {
+ const idEl = document.querySelector('a.id-link[data-item-id], #a_toggle[data-item-id], #a_favo[data-item-id], #comments-container[data-item-id], [data-item-id]');
+ if (idEl && idEl.dataset && idEl.dataset.itemId) {
+ const parsed = parseInt(idEl.dataset.itemId, 10);
+ if (!isNaN(parsed)) return String(parsed);
+ }
const path = window.location.pathname;
// Explicitly ignore admin/mod/settings paths to avoid false positives from user IDs, etc.
if (path.includes('/admin/') || path.includes('/mod/') || path.includes('/settings') || path.includes('/user/')) return null;
const match = path.match(/\/(\d+)\/?$/);
- return match ? match[1] : null;
+ if (match) return match[1];
+
+ const idLink = document.querySelector('a.id-link');
+ if (idLink && idLink.innerText) {
+ const parsed = parseInt(idLink.innerText.trim(), 10);
+ if (!isNaN(parsed)) return String(parsed);
+ }
+ return null;
};
// OS and Browser detection for CSS targeting
@@ -4369,9 +4381,10 @@ window.cancelAnimFrame = (function () {
} else if (target.closest('button#a_toggle')) {
e.preventDefault();
const toggleBtn = target.closest('button#a_toggle');
- const idLink = document.querySelector("a.id-link");
- if (!idLink) return;
- const postid = +idLink.innerText;
+ const itemIdStr = toggleBtn.dataset.itemId || window.getCurrentItemId();
+ if (!itemIdStr) return;
+ const postid = parseInt(itemIdStr, 10);
+ if (isNaN(postid)) return;
// Determine current rating
let currentRating = 'sfw';
@@ -4475,8 +4488,8 @@ window.cancelAnimFrame = (function () {
toggleBtn._activeRequestsCount = Math.max(0, (toggleBtn._activeRequestsCount || 1) - 1);
// Verify we are still on the same post (prevent dynamic/PJAX page leaks)
- const activeIdLink = document.querySelector("a.id-link");
- const currentPostId = activeIdLink ? +activeIdLink.innerText : null;
+ const currentIdStr = window.getCurrentItemId();
+ const currentPostId = currentIdStr ? parseInt(currentIdStr, 10) : null;
if (currentPostId !== postid) return;
if (toggleBtn._lastCycleReqId !== reqId) return; // ignore stale responses
@@ -4502,8 +4515,8 @@ window.cancelAnimFrame = (function () {
toggleBtn._activeRequestsCount = Math.max(0, (toggleBtn._activeRequestsCount || 1) - 1);
// Verify we are still on the same post (prevent dynamic/PJAX page leaks)
- const activeIdLink = document.querySelector("a.id-link");
- const currentPostId = activeIdLink ? +activeIdLink.innerText : null;
+ const currentIdStr = window.getCurrentItemId();
+ const currentPostId = currentIdStr ? parseInt(currentIdStr, 10) : null;
if (currentPostId !== postid) return;
if (toggleBtn._lastCycleReqId !== reqId) return;
@@ -8685,8 +8698,8 @@ class NotificationSystem {
}
// Check if we are currently viewing this item
- const idLink = document.querySelector('.id-link');
- const currentId = idLink ? parseInt(idLink.innerText) : null;
+ const currentIdStr = window.getCurrentItemId();
+ const currentId = currentIdStr ? parseInt(currentIdStr, 10) : null;
window.f0ckDebug(`[NotificationSystem] Processing tag update for #${data.item_id}. Current view is #${currentId}`);
@@ -8768,8 +8781,8 @@ class NotificationSystem {
if (!data || !data.item_id) return;
// Check if we are currently viewing this item
- const idLink = document.querySelector('#main .id-link');
- if (!idLink || parseInt(idLink.innerText) !== parseInt(data.item_id)) return;
+ const currentIdStr = window.getCurrentItemId();
+ if (!currentIdStr || parseInt(currentIdStr, 10) !== parseInt(data.item_id, 10)) return;
const favsContainer = document.querySelector('#favs');
if (!favsContainer) return;
diff --git a/views/item-partial-legacy.html b/views/item-partial-legacy.html
index ba5b882..6cf9da0 100644
--- a/views/item-partial-legacy.html
+++ b/views/item-partial-legacy.html
@@ -192,7 +192,7 @@
@if(can_manage_item)
-
+
@endif
@endif
diff --git a/views/item-partial-modern.html b/views/item-partial-modern.html
index 02f3595..569239f 100644
--- a/views/item-partial-modern.html
+++ b/views/item-partial-modern.html
@@ -33,7 +33,7 @@
@if(can_manage_item)
-
+
@endif
@endif