判断浏览器是否支持MathML,提供一种浏览器标签渲染兼容的的思路

项目场景:

当我们使用MathML做公式展示,可能最大的问题就是浏览器兼容,当前主流版本都兼容了,可以支持无痕渲染MathML
但总有刁民搞事情,比如低版本猎豹,搜狗浏览器


问题描述

我们总不能为了这几个落后的浏览器,停止技术的迭代吧!这是未来所趋呀!
但兼容还是要兼容的,在不能渲染MathML的时候,至少提示“ 如遇公式无法展示,请更新浏览器到最新版本,或使用谷歌或火狐”
那么问题来了,我们该怎么判断浏览器支不支持 MathML?


解决方案:

1.首先我们看看官方

MDN解释

在这里插入图片描述
没懂什么意思,蒙蔽的一脸懵逼???,引入了项目也没啥效果

第二种:浏览器嗅探

就是监听浏览器类别,然后特殊处理,但你怎么知道那些浏览器不支持,市面那么多浏览器

最终解决方案:

首先我们就要思考问题,浏览器渲染不出来MathML标签,会有什么区别,它是怎么渲染出来?

当浏览器不支持MathML时,它们可能无法识别MathML元素中的样式属性,包括fontSize。这是因为MathML元素和属性不是标准HTML/CSS的一部分,所以不支持MathML的浏览器可能会忽略这些元素和属性,或者将它们视为未知元素,从而不会应用任何样式。
此外,即使在支持MathML的浏览器中,fontSize属性也可能不直接应用于MathML元素,因为MathML通常有自己的样式规则和属性,这些可能与标准HTML/CSS的处理方式不同。

所以这解决方法不就来了,当页面渲染完成后,我拿一个MathML 判断它是否有fontSize属性,不久成了,可以取到该属性就说明该浏览器支持MathML ,取不到就说明不支持,就不展示公式,继而展示相应的提示
下面上代码

 mounted() {
        // 判断浏览器是否支持MathML
        const math = document.getElementById('math-tip')
        let styel = math.style
        if (!styel) {
            this.isSupport = false
        }
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值