收口手机抽屉事件范围
This commit is contained in:
@@ -12,6 +12,17 @@ let mobileRoomsOnlineStatusCacheAt = 0;
|
||||
|
||||
const MOBILE_ROOMS_ONLINE_STATUS_CACHE_TTL = 10000;
|
||||
|
||||
/**
|
||||
* 判断点击是否来自手机抽屉区域。
|
||||
* document 代理只处理浮动按钮、遮罩和抽屉内部,避免其它区域复用 data 属性时误触发。
|
||||
*
|
||||
* @param {Element} target 事件目标
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function isMobileDrawerEventTarget(target) {
|
||||
return Boolean(target.closest("#mobile-fabs, #mobile-drawer-mask, .mobile-drawer"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行手机抽屉工具入口动作。
|
||||
*
|
||||
@@ -283,6 +294,10 @@ export function bindMobileDrawerControls() {
|
||||
}
|
||||
|
||||
// 手机抽屉内多数节点由 Blade 与后续 AJAX 动态生成,统一使用 document 事件代理。
|
||||
if (!isMobileDrawerEventTarget(event.target)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const drawerTrigger = event.target.closest("[data-mobile-drawer-open]");
|
||||
if (drawerTrigger) {
|
||||
event.preventDefault();
|
||||
@@ -318,7 +333,8 @@ export function bindMobileDrawerControls() {
|
||||
|
||||
const url = toolUrl.getAttribute("data-mobile-tool-url");
|
||||
if (url) {
|
||||
window.open(url, "_blank");
|
||||
// 工具外链统一新窗口打开,并禁止新窗口反向访问聊天室页面。
|
||||
window.open(url, "_blank", "noopener,noreferrer");
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user