let isMathjaxConfig = false//用于标识是否配置 const initMathjaxConfig = () => { if (!window.MathJax) { return } window.MathJax.Hub.Config({ showProcessingMessages: false, //关闭js加载过程信息 messageStyle: 'none', //不显示信息 jax: ['input/TeX', 'output/HTML-CSS'], tex2jax: { inlineMath: [['$', '$'], ['\\(', '\\)']], //行内公式选择符 displayMath: [['$$', '$$'], ['\\[', '\\]']], //段内公式选择符 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code', 'a'] //避开某些标签 }, 'HTML-CSS': { availableFonts: ['STIX', 'TeX'], //可选字体 showMathMenu: false //关闭右击菜单显示 } }) isMathjaxConfig = true //配置完成,改为true } const _ensureMathjaxInit = function() { if (!isMathjaxConfig) initMathjaxConfig() } const _transferTikuQuestionImageUrls = function(docEle) { const imgList = docEle.getElementsByTagName('img') for (var i = 0; i < imgList.length; i++) { const img = imgList[i] const supportTagConfigs = [ { tag: 'tikuimages', prefix: 'https://file.mingxuejinbang.com/tikubao/tikuimages' }, { tag: 'mathJye', prefix: 'https://file.mingxuejinbang.com/tikubao/mathJye' }] for (let index = 0; index < supportTagConfigs.length; index++) { const config = supportTagConfigs[index] if (_transferTikuQuestionImageUrlsByTag(img, config)) break } } } const _transferTikuQuestionImageUrlsByTag = function(img, config) { let srcParams = img.src.split(config.tag) if (srcParams.length > 1) { img.src = config.prefix + srcParams[1] return true } return false } const MathQueue = function(elementId, callback) { _ensureMathjaxInit() const docEle = document.getElementById(elementId) if (!docEle) return _transferTikuQuestionImageUrls(docEle) if (!window.MathJax) { return } window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub, docEle]) if (typeof callback === 'function') window.MathJax.Hub.Queue(callback) }