頁面中超鏈接 `` 點擊無反應,懷疑 JS 阻止了默認跳轉。
代碼中存在全局點擊攔截:
document.addEventListener('click', function(e) {
// ... 某些條件判斷 ...
e.preventDefault(); // 關鍵:無條件/誤判條件下阻止默認行為
});
document.addEventListener('click', function(e) {
const link = e.target.closest('a[href]');
if (link && shouldIntercept(link)) { // 自定義判斷邏輯
e.preventDefault();
// 自定義處理:SPA 路由、確認彈窗、統計上報...
}
});
if (link && !link.matches('[data-no-intercept]')) { e.preventDefault(); }
document.body.addEventListener('click', e => {
const a = e.target.closest('a[href]');
if (!a) return; // 非鏈接不處理
if (a.matches('.external, [target="_blank"], [download]')) return; // 白名單放行
e.preventDefault();
router.navigate(a.href);
});
**核心:`preventDefault()` 是雙刃劍,精準條件 + 白名單機制,才能兼顧攔截需求與正常跳轉。**