詳解如何讓InstantClick兼容MathJax、百度統(tǒng)計等
之前有網(wǎng)友提及博客上的LaTex(由MathJax實現(xiàn))壞掉了,其原因是這里使用了instantclick,以達到網(wǎng)頁秒開的效果。但由于instantclick不會重新運行位于head部分的JavaScript代碼,而很多工具性軟件,比如MathJax、百度統(tǒng)計、Google Analytics、Google Code Prettify等軟件都是直接將JS文件插入到head區(qū)域。這導(dǎo)致這些工具在instantclick點擊后失效,需要重新配置。
配置并不復(fù)雜,這些工具本身的代碼不用做任何修改,該怎么放還怎么放。但在InstantClick.init();之前添加以下代碼:
<script data-no-instant> InstantClick.on('change', function(isInitialLoad) { if (isInitialLoad === false) { if (typeof MathJax !== 'undefined') // support MathJax MathJax.Hub.Queue(["Typeset",MathJax.Hub]); if (typeof prettyPrint !== 'undefined') // support google code prettify prettyPrint(); if (typeof _hmt !== 'undefined') // support 百度統(tǒng)計 _hmt.push(['_trackPageview', location.pathname + location.search]); if (typeof ga !== 'undefined') // support google analytics ga('send', 'pageview', location.pathname + location.search); } }); InstantClick.init(); </script>
這段代碼的含義是每次頁面重載時,通過直接的函數(shù)調(diào)用來實現(xiàn)MathJax、百度統(tǒng)計、Google Code Prettify、Google Analytics的重新運行。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 中如何實現(xiàn)并發(fā)控制
在日常開發(fā)過程中,你可能會遇到并發(fā)控制的場景,比如控制請求并發(fā)數(shù)。那么在 JavaScript 中如何實現(xiàn)并發(fā)控制呢?在回答這個問題之前,我們來簡單介紹一下并發(fā)控制。2021-05-05js使用removeChild方法動態(tài)刪除div元素
本節(jié)為大家介紹了js使用removeChild方法動態(tài)刪除div元素,需要的朋友可以參考下2014-08-08在JavaScript中call()與apply()區(qū)別
這篇文章主要介紹了在JavaScript中call()與apply()區(qū)別 的相關(guān)資料,需要的朋友可以參考下2016-01-01基于Bootstrap實現(xiàn)的下拉菜單手機端不能選擇菜單項的原因附解決辦法
小編使用bootstrap做的下拉菜單在電腦瀏覽器中可以正常使用,在手機瀏覽器中能彈出下拉列表卻不能選擇列表中的菜單項,怎么回事,如何解決呢?下面小編給大家分享下具體原因及解決辦法,一起看下吧2016-07-07