weixin_41244451 2024-06-22 19:46 采纳率: 92.9%
浏览 2
已结题

电脑可以正常使用,为什么手机浏览器、微信都不能正常显示出来数字


function generateQuestion(numbers) {
    let result = 0;
    const operators = ['+', '-'];
    let question = '';
    let lastOperator = '+'; // 初始操作符为加号
    let lastNumber = null; // 初始化上一个数字为null
    let buttonsDisabled = true; // 按钮初始状态为不可点击
    
    if(type==7)
    {
        if(bishu==2)
        {
            bishu=3;
        }
    }
    if(numbers!='')
    {
        let parts = numbers.split(' ');
        let denghao='';
 
        for (let i = 0; i < parts.length; i++) {
            let part = parts[i];
            let operator = part[0];//获取运算符
            let number=parseInt(part.slice(1), 10);;//获取数字
            
            if (i > 0) {
                result += operator === '+' ? number : -number;
                question += ' ' + operator + number;
            } else {
                result = number;
                question = operator + number;
            }
            
            // 每隔一定时间显示数字和运算符
            setTimeout(() => {
                if(i>0)
                {
                    number=operator+number;
                }
                if(i===parts.length-1)
                {
                    denghao='=';
                }
                displayQuestion(number, '', denghao);
            }, (i + 1) * shijian * 1000);
        }
    }
    else
    {
        for (let i = 0; i < bishu; i++) {//几笔
            let number, operator;
            let validNumber = false;
            let result_onesDigit=onesDigit(result);
            let result_tensDigit = tensDigit(result);
            let result_hundredDigit = hundredDigit(result);

            // 循环直到找到一个合适的数字
            do {
                if(type==1)//1-4直加直减
                {
                    number = Math.floor(Math.random() * 4) + 1; // 1-4的随机数
                    operator = operators[Math.floor(Math.random() * 2)];
                    // 检查当前操作符和数字是否会导致结果超出范围
                    if (operator === '+') {
                        validNumber = result + number <= 4;
                    }
                    else
                    {
                        validNumber = result - number >= 0;
                    }
                }
} while (!validNumber);

            lastOperator = operator; // 更新上一个操作符
            lastNumber = number; // 更新上一个数字
            setTimeout(() => {
                if(i === 0)
                {
                    displayQuestion(number,'','');
                }
                else if(operator === '+')
                {
                    if(i === bishu-1)//笔数-1为最后一个数字
                    {
                        displayQuestion(operator + number,'+','=');
                    }
                    else
                    {
                        displayQuestion(operator + number,'+','');
                    }

                }
                else
                {
                    if(i === bishu-1)//笔数-1为最后一个数字
                    {
                        displayQuestion(operator + number,'','=');
                    }
                    else
                    {
                        displayQuestion(operator + number,'','');
                    }
                }
            }, (i + 1) * shijian*1000);//间隔时间*1000

            result += operator === '+' ? number : -number;
            question += (i > 0 ? ' ' : '') + operator + number;
        }
    }
    
    if(xingshi==1 || xingshi==2)
    {
        setTimeout(() => {
            document.getElementById('question').textContent = '请答题';
            isQuestionDisplayed = true; // 在显示“请答题”后将标志设为true
        }, shijian*bishu*1000+1000);
    }
    else
    {
        let yanshi=shijian*1000+1000+1000*1.5*bishu-300*bishu*yusu/4;
        setTimeout(() => {
            document.getElementById('question').textContent = '请答题';
            isQuestionDisplayed = true; // 在显示“请答题”后将标志设为true
        }, yanshi);
    }
    questions.push({ question: question, answer: result });
}

电脑可以正常使用,为什么手机浏览器、微信都不能正常显示出来数字

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-06-22 19:47
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从你提供的JavaScript代码来看,generateQuestion 函数主要负责生成数学问题并显示出来。如果代码在电脑浏览器上可以正常工作,但在手机浏览器和微信中出现问题,可能的原因和解决方案如下:

    1. 屏幕大小和分辨率:手机的屏幕大小和分辨率通常比电脑小得多,这可能会导致布局问题或元素显示不全。确保你的CSS样式对不同设备友好。

    2. 浏览器兼容性:不同的浏览器对JavaScript的支持可能存在差异。检查代码中是否有特定于浏览器的语法或特性,这可能在手机浏览器中不被支持。

    3. 异步加载问题:使用 setTimeout 来控制显示问题和答案的时间间隔,可能在不同设备上执行速度不同,导致显示问题。

    4. 微信内置浏览器限制:微信内置浏览器对JavaScript的支持可能有限,特别是一些高级或非标准的特性。

    5. 编码问题:如果数字显示不正确或乱码,可能是编码问题。确保你的网页编码设置为UTF-8。

    6. CSS样式问题:在手机浏览器上,CSS样式可能需要调整以适应更小的屏幕。

    7. JavaScript错误:在手机浏览器或微信的开发者工具中查看是否有JavaScript错误,并根据错误信息进行调试。

    8. 函数调用问题:确保 generateQuestion 函数被正确调用,并且所有需要的变量和参数都已正确传递。

    9. HTML结构问题:检查HTML结构是否在所有设备上都正确渲染。

    10. 性能问题:手机的性能可能不如电脑,特别是在处理大量或复杂的JavaScript操作时。

    要解决这个问题,你可以尝试以下步骤:

    • 使用手机浏览器的开发者工具检查是否有错误或警告。
    • 确保你的网页使用了响应式设计,以适应不同屏幕尺寸。
    • 测试代码在不同手机浏览器上的表现,看看问题是否普遍存在。
    • 简化或优化JavaScript代码,减少对性能的依赖。
    • 如果问题特定于微信,尝试查找微信开发者文档,了解是否有特定的限制或最佳实践。

    如果你需要更具体的帮助,可以提供更多的信息,例如错误消息或具体的行为差异。同时,我可以帮你查找一些相关的参考链接,但请注意,我无法直接提供链接,你可以根据以下关键词自行搜索:

    • 响应式Web设计
    • 移动设备JavaScript兼容性
    • 微信内置浏览器开发
    • 跨浏览器测试工具

    希望这些信息能帮助你解决问题。如果需要进一步的帮助,请随时告诉我。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月23日
  • 已采纳回答 6月23日
  • 创建了问题 6月22日