Gunakan langkah ini sebagai senarai semak kerja dan sesuaikannya dengan bukti, skop serta kekangan projek.
Langkah praktikal
- Buka halaman yang ingin diperiksa dan konsol pembangun pelayar. Gunakan mod responsif dahulu untuk pemeriksa limpahan mudah alih.
- Semak kod, tampal keseluruhan petikan ke dalam konsol dan tekan Enter. Ia membaca halaman semasa; hanya alat metadata sitemap dan pemeriksa same-origin membuat permintaan yang terhad.
- Semak output konsol atau CSV/JSON yang dimuat turun. Dasar pelayar, pengesahan dan kaedah pelayan yang tidak disokong boleh menyebabkan sesetengah semakan tidak dapat dipastikan.
(() => {
const width = document.documentElement.clientWidth || innerWidth;
const MAX_SCAN = 8000;
const MAX_RESULTS = 80;
const candidates = [];
const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);
let scanCapped = false;
while (walker.nextNode()) {
if (candidates.length === MAX_SCAN) {
scanCapped = true;
break;
}
candidates.push(walker.currentNode);
}
const overflowRows = candidates.map((el) => {
const rect = el.getBoundingClientRect();
const style = getComputedStyle(el);
return { element: el, selector: el.tagName.toLowerCase() + (el.id ? '#' + CSS.escape(el.id) : '') + [...el.classList].slice(0, 2).map((name) => '.' + CSS.escape(name)).join(''), left: Math.round(rect.left), right: Math.round(rect.right), width: Math.round(rect.width), position: style.position, overflow: rect.left < -2 || rect.right > width + 2 };
}).filter((row) => row.overflow && row.width > 0).sort((a, b) => Math.max(b.right - width, -b.left) - Math.max(a.right - width, -a.left));
const rows = overflowRows.slice(0, MAX_RESULTS);
console.table(rows.map(({ element, ...row }) => row));
console.info('Viewport width:', width, '· document width:', document.documentElement.scrollWidth, '· out-of-viewport elements:', overflowRows.length, '· shown:', rows.length, '· scanned elements:', candidates.length);
if (overflowRows.length > MAX_RESULTS) console.warn('Showing the ' + MAX_RESULTS + ' largest candidates out of ' + overflowRows.length + ' overflowing elements.');
if (scanCapped) console.warn('Scan stopped at ' + MAX_SCAN + ' elements; additional elements were not checked.');
if (document.documentElement.scrollWidth > width) console.warn('The document is wider than the current viewport. Run again at the target mobile width.');
console.info('This reports geometry only; fixed headers, intentional carousels, transforms, and browser zoom may produce false positives.');
})();Semak sebelum menjalankan. Skrip membaca halaman semasa; hanya audit sitemap dan pautan membuat permintaan same-origin yang terhad. Permintaan tidak menghantar cookies; skrip tidak mengubah kandungan laman.