解决在微信小程序开发者工具中访问Discuz!触屏版空白的问题 New
有时候点击某个按钮会莫名其妙一直刷新访问forum.php?mobile=1这个页面,然后在微信开发者工具中用webview嵌入时也会白屏,真机调试没有问题。
调试发现会一直重复请求资源导致页面加载不出来,甚至有时候会刷的电脑死机掉。
所以分享此解决办法:
注释或删除掉 /static/js/mobile/common.js中如下代码
我全局搜索了一下,没有细看。
好像swiper部分用到ontouchend函数,但是没有影响,
supporttouch好像没有其他地方用到。
目前测试没有问题,如果哪位大佬知道这块具体会影响哪部分功能可以留言。如果大家使用中有遇到问题也可以反馈到这里。
因为对dzx的机制不是很熟悉,没有深入研究,所以也无法提出具体的优化建议,希望大佬们可以优化下这块。 在微信小程序开发者工具中访问Discuz!触屏版时出现空白页面的问题,通常是由于某些JavaScript代码在微信开发者工具中的兼容性问题导致的。你提到的解决方案是注释或删除`/static/js/mobile/common.js`中的部分代码,这确实是一个常见的解决方法。下面我将详细解释这个问题以及解决方案。
### 问题分析
1. **重复请求资源**:在微信开发者工具中,某些JavaScript代码可能会导致页面不断刷新或重复请求资源,从而导致页面加载不出来,甚至可能导致电脑死机。
2. **`ontouchend`事件**:`ontouchend`是触摸事件的一部分,通常用于移动端开发。在微信开发者工具中,某些触摸事件的实现可能与真机不同,导致页面行为异常。
3. **`supporttouch`**:这个变量通常用于检测设备是否支持触摸事件。如果这个变量在某些地方被错误地使用或判断,可能会导致页面行为异常。
### 解决方案
你提到的解决方案是注释或删除`/static/js/mobile/common.js`中的部分代码。具体来说,可能是以下代码段:
if (supporttouch) {
document.addEventListener('touchend', function(e) {
// 某些逻辑
}, false);
}
你可以尝试注释掉这段代码,或者删除`supporttouch`相关的逻辑,看看是否能解决问题。
### 具体步骤
1. **找到`common.js`文件**:在Discuz!的安装目录中,找到`/static/js/mobile/common.js`文件。
2. **注释或删除相关代码**:找到与`supporttouch`或`ontouchend`相关的代码段,并将其注释或删除。
3. **测试**:在微信开发者工具中重新加载页面,看看问题是否解决。
### 注意事项
1. **备份**:在修改任何文件之前,建议先备份原始文件,以防修改后出现问题。
2. **真机测试**:虽然微信开发者工具中可能会出现兼容性问题,但在真机上可能没有问题。因此,在修改代码后,建议在真机上进行测试,确保功能正常。
3. **其他可能的影响**:注释或删除`ontouchend`相关的代码可能会影响某些触摸事件的处理逻辑。如果你发现某些功能在真机上无法正常工作,可能需要进一步调整代码。
### 进一步优化
如果你对Discuz!的机制不熟悉,建议在DZ插件网(https://www.dz-x.net/)上查找相关的插件或解决方案。你也可以在DZ插件网的论坛中发帖,寻求其他开发者的帮助。
希望这些信息能帮助你解决问题。如果你有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 在微信小程序开发者工具中访问Discuz!触屏版时出现空白页面的问题,通常是由于某些JavaScript代码在微信开发者工具中的兼容性问题导致的。你提到的解决方案是注释或删除`/static/js/mobile/common.js`中的部分代码,这确实是一个常见的解决方法。
### 问题分析:
1. **重复请求资源**:可能是由于某些事件监听器(如`ontouchend`)在微信开发者工具中触发了多次,导致页面不断刷新或资源重复加载。
2. **页面白屏**:可能是由于某些JavaScript代码在微信开发者工具中无法正确执行,导致页面渲染失败。
### 解决方案:
1. **注释或删除`common.js`中的代码**:
- 你提到的`ontouchend`事件可能是导致问题的原因之一。如果`ontouchend`事件在微信开发者工具中触发了多次,可能会导致页面不断刷新或资源重复加载。
- 你可以尝试注释或删除`common.js`中与`ontouchend`相关的代码,看看是否能解决问题。
2. **检查`supporttouch`**:
- `supporttouch`通常用于检测设备是否支持触摸事件。如果这个变量在其他地方没有被使用,注释或删除它通常不会影响其他功能。
3. **进一步优化**:
- 如果你对Discuz!的机制不熟悉,建议在修改代码之前备份相关文件,以便在出现问题时可以恢复。
- 如果你发现注释或删除某些代码后功能受到影响,可以尝试逐步恢复代码,找到具体的问题点。
### 代码示例:
假设你在`common.js`中找到了以下代码:
document.addEventListener('touchend', function(event) {
// 一些处理逻辑
}, false);
你可以尝试注释掉这段代码:
// document.addEventListener('touchend', function(event) {
// // 一些处理逻辑
// }, false);
### 其他建议:
- **真机调试**:如果真机调试没有问题,说明问题可能只存在于微信开发者工具中。你可以继续在真机上进行开发和测试,避免在开发者工具中遇到问题。
- **反馈给社区**:如果你不确定修改的代码会影响哪些功能,可以在DZ插件网(https://www.dz-x.net/)的社区中发帖,寻求其他开发者的帮助和建议。
### 总结:
通过注释或删除`common.js`中的部分代码,可以解决在微信小程序开发者工具中访问Discuz!触屏版时出现的空白页面问题。如果你对代码的修改有疑虑,建议在修改前备份文件,并在社区中寻求更多帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]