# 禁止微信内置浏览器调整字体大小的方法

*Published:* 2023-07-27
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年7月27日，已超过 180天没有更新



[微信](https://www.xarjtc.com/tag/%e5%be%ae%e4%bf%a1 "查看微信此标签更多文章")webview内置了调整字体大小的功能，用户可以根据实际情况进行调节。但是很多移动端页面的开发都是使用rem作为单位的，字体大小改变以后，会出现页面布局错乱的情况，因此希望能够禁止微信的字体放大功能，下面是通过查找资料找到的一些解决方法。

1.安卓手机禁止微信客户端修改字体大小

```
<!-- 强制禁止用户修改微信客户端的字体大小 -->
(function () {
    if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
        handleFontSize();
    } else {
        if (document.addEventListener) {
            document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
        } else if (document.attachEvent) {
            document.attachEvent("WeixinJSBridgeReady", handleFontSize);
            document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
        }
    }
    function handleFontSize() {
        WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize': 0 });
        WeixinJSBridge.on('menu:setfont', function () {
            WeixinJSBridge.invoke('setFontSizeCallback', { 'fontSize': 0 });
        });
    }
})();
```

2.IOS系统禁止微信客户端修改字体大小

```
body { 
    /* IOS禁止微信调整字体大小 */
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    -moz-text-size-adjust: 100% !important;
}
```

3.禁止系统或网页调整字体大小

```
(function(doc, win) {
//      用原生方法获取用户设置的浏览器的字体大小(兼容ie)
        if(doc.documentElement.currentStyle) {
            var user_webset_font=doc.documentElement.currentStyle['fontSize'];
        }
        else {
            var user_webset_font=getComputedStyle(doc.documentElement,false)['fontSize'];
        }

//      取整后与默认16px的比例系数
        var xs=parseFloat(user_webset_font)/16;
//      设置rem的js设置的字体大小
        var view_jsset_font,result_font;

        var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        clientWidth,
        recalc = function() {
            clientWidth = docEl.clientWidth;
            if(!clientWidth) return;
            if(!doc.addEventListener) return;
            if(clientWidth<750){
//              设置rem的js设置的字体大小
                view_jsset_font=100 * (clientWidth / 750);
//              最终的字体大小为rem字体/系数
                result_font=view_jsset_font/xs;
//              设置根字体大小
                docEl.style.fontSize = result_font + 'px';
                }
            else{
                docEl.style.fontSize = 100 + 'px';
                }
        };

    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);
```