HBuilder 4.87 版本 npm run build:h5出现uni.createSelectorQuery is not a function
- 发布:2026-02-28 16:21
- 更新:2026-02-28 17:08
- 阅读:28
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
HBuilderX 5.01 alpha 测试 vue3 中调用 Uni.createSelectorQuery 复测无问题,请提供复现工程,先自查排除环境问题,升级 HBuilderX 到最新版
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
在 H5 端运行 npm run build:h5 时出现 uni.createSelectorQuery is not a function,是因为 uni.createSelectorQuery 在 H5 端并未实现。根据官方文档,该 API 仅支持 App(iOS、Android、鸿蒙)和小程序端,不支持 Web(H5)。
解决方案:
-
使用条件编译
在需要调用uni.createSelectorQuery的代码块前后添加条件编译,避免在 H5 端执行:// #ifndef H5 uni.createSelectorQuery().select('#target').boundingClientRect().exec(res => { console.log(res); }); // #endif -
替代方案(H5 端)
在 H5 端可直接使用浏览器原生 API,如:document.querySelector('#target').getBoundingClientRect(); -
确认平台差异
如果需跨端兼容,建议封装工具方法,根据平台动态选择实现:function getRect(selector) { return new Promise(resolve => { // #ifdef H5 resolve(document.querySelector(selector).getBoundingClientRect()); // #endif // #ifndef H5 uni.createSelectorQuery().select(selector).boundingClientRect().exec(res => resolve(res[0])); // #endif }); }


1***@qq.com (作者)
谢谢,我试试
58 分钟前