mpMath: 与微信公众号的斗智之旅(1)
内容提要
文章讨论了mpMath与微信公众号新版编辑器不兼容的问题。作者发现微信编辑器通过MutationObserver自动移除特定标签,并编写用户脚本禁用或钩住MutationObserver。最终确认问题源于编辑器切换到ProseMirror,并通过添加参数成功避免使用新编辑器。
关键要点
-
mpMath与微信公众号新版编辑器不兼容,导致公式转换功能失效。
-
微信编辑器通过MutationObserver自动移除特定标签,如mjx-container和mathml。
-
作者尝试通过用户脚本禁用MutationObserver,但影响了其他功能。
-
最终确认问题源于编辑器切换到ProseMirror,并通过添加参数成功避免使用新编辑器。
延伸解读
编辑器兼容性问题的影响
mpMath与微信公众号新版编辑器的不兼容,直接影响了用户的公式转换功能。这种技术上的障碍不仅影响了用户体验,也可能导致用户对平台的信任度下降,尤其是在教育和科研领域,稳定性和兼容性至关重要。
MutationObserver的作用与风险
微信编辑器使用MutationObserver来监控和修改DOM结构,这虽然可以提高页面的动态性,但也可能导致某些标签被错误移除。开发者在使用此类技术时需谨慎,确保不会影响到其他功能,避免引发连锁反应。
ProseMirror的引入与挑战
微信公众号编辑器切换到ProseMirror是一个技术升级,但也带来了兼容性问题。开发者在面对新技术时,需评估其对现有功能的影响,并做好相应的适配工作,以减少用户的不便。
延伸问答
mpMath与微信公众号新版编辑器不兼容的原因是什么?
原因是微信编辑器通过MutationObserver自动移除特定标签,导致mpMath的公式转换功能失效。
MutationObserver在微信编辑器中起什么作用?
MutationObserver用于监听页面变更,并自动移除mjx-container和mathml等标签。
作者是如何尝试解决mpMath与微信编辑器不兼容的问题的?
作者尝试通过用户脚本禁用MutationObserver,但这影响了其他功能,最终通过添加参数避免使用新编辑器。
mpMath的公式转换功能是如何工作的?
mpMath通过一键公式转换将文档中的公式绘制成SVG格式。
微信编辑器切换到ProseMirror对mpMath有什么影响?
切换到ProseMirror导致原有基于ueditor的方式不再兼容,从而影响mpMath的功能。
如何通过用户脚本解决微信编辑器的问题?
可以通过用户脚本钩住MutationObserver,控制其行为以允许mjx-container等标签存在。