-
encodeURIComponent只应用于URL参数值,不可用于完整URL;正确用法是key=encodeURIComponent(value),配合URLSearchParams更安全;它仅解决传输层字符歧义,不防范语义注入。
-
纯HTML+CSS可实现逼真手机外框:设.device-iphone为375×812px、12px黑边、::before内凹屏区(inset:12px、圆角44px)、::after画顶部听筒条;内容必须用同源iframe嵌入并加sandbox="allow-scriptsallow-same-origin",子页需独立配置viewport。
-
HTML表格本身不支持数据订阅通知,需结合后端技术实现。1.WebSocket建立双向通信,服务器主动推送更新;2.SSE提供轻量级单向推送;3.LongPolling模拟实时更新;4.使用框架如React、Vue.js简化开发;5.根据实时性和通信方向选择合适方案,并注意数据安全。
-
<col>元素不渲染视觉样式,CSS规范禁止对其应用background-color,Chrome、Firefox、Safari均一致忽略;必须通过tr>th:nth-child(n),tr>td:nth-child(n)为单元格设置背景色。
-
iOSSafari(尤其iPad)中SVG点击事件失效的根本原因是渲染层默认禁用pointer事件,需显式设置pointer-events:all并添加touchstart事件才能可靠触发。
-
String.fromCodePoint()仅将码点转为字符,不处理Emoji组合逻辑;复杂Emoji如??是基础字符+ZWJ(U+200D)+修饰符等按规则拼接的序列,需手动传入全部码点生成。
-
JavaScript错误处理需结合try-catch捕获同步异常,async/await或Promise.catch处理异步错误,配合window.onerror和unhandledrejection全局监听,并通过自定义错误类型提升可维护性。
-
Object.prototype.toString是最可靠、跨环境的类型检测方式,能精准区分内置对象类型;typeof对引用类型返回"object"无法细粒度区分,instanceof在多全局环境失效;需用call/apply绑定目标值,封装为getType可提取类型标识符,支持ES6+新类型及Symbol.toStringTag自定义。
-
Chrome110及更早版本完全不支持popover属性,该属性首次实现在Chromium114(2023年5月底),此前解析时静默忽略,JS调用showPopover()会报错,且无对应实验标志可启用。
-
CSS变量在JS中通过style.setProperty()修改、getComputedStyle().getPropertyValue()读取,需注意拼写、作用域、优先级及SSR/CSR时机;color-mix()不可在JS调用,hsl()可字符串生成;暗色模式闪动应预设data-theme并过渡具体属性。
-
表单根元素不应承担样式职责,所有视觉逻辑必须下沉到带业务语义的独立字段block(如field-email)中,以保障校验精准性、复用性、无障碍支持及移动端兼容性。
-
长按事件不能直接用ontouchstart+setTimeout,因移动端默认行为干预、touchend不可靠及误判风险;需结合touchmove位移判断、getBoundingClientRect定位菜单、role属性提升可访问性,并务必处理touchcancel清理定时器。
-
download属性在EdgeLegacy中对PDF无效,因其PDF引擎强制内嵌打开且未实现该属性;唯一可靠方案是后端设置Content-Disposition:attachment响应头。
-
top不生效90%因position为static;需显式设relative/absolute,注意flex/grid对齐覆盖、transform创建新层叠上下文及dialog需手动设position。
-
style-loader必须在css-loader右侧,因Webpackuse数组从右向左执行:css-loader先解析CSS为JS模块,style-loader再注入到head;顺序颠倒会报错。