詳解如何讓InstantClick兼容MathJax、百度統(tǒng)計等
之前有網(wǎng)友提及博客上的LaTex(由MathJax實現(xiàn))壞掉了,其原因是這里使用了instantclick,以達(dá)到網(wǎng)頁秒開的效果。但由于instantclick不會重新運(yùn)行位于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的重新運(yùn)行。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 中如何實現(xiàn)并發(fā)控制
在日常開發(fā)過程中,你可能會遇到并發(fā)控制的場景,比如控制請求并發(fā)數(shù)。那么在 JavaScript 中如何實現(xiàn)并發(fā)控制呢?在回答這個問題之前,我們來簡單介紹一下并發(fā)控制。2021-05-05
js使用removeChild方法動態(tài)刪除div元素
本節(jié)為大家介紹了js使用removeChild方法動態(tài)刪除div元素,需要的朋友可以參考下2014-08-08
Js實現(xiàn)手機(jī)發(fā)送驗證碼時按鈕延遲操作
在做項目的時候,經(jīng)常遇到發(fā)短信驗證碼的問題,這時候需要用戶點完發(fā)送驗證碼按鈕后,一段時間內(nèi)不能重復(fù)點擊,畢竟驗證碼都是收費(fèi)的嘛,誰都不想浪費(fèi),那么如何實現(xiàn)這種功能呢?下面來分享一下。2014-06-06
在JavaScript中call()與apply()區(qū)別
這篇文章主要介紹了在JavaScript中call()與apply()區(qū)別 的相關(guān)資料,需要的朋友可以參考下2016-01-01
基于Bootstrap實現(xiàn)的下拉菜單手機(jī)端不能選擇菜單項的原因附解決辦法
小編使用bootstrap做的下拉菜單在電腦瀏覽器中可以正常使用,在手機(jī)瀏覽器中能彈出下拉列表卻不能選擇列表中的菜單項,怎么回事,如何解決呢?下面小編給大家分享下具體原因及解決辦法,一起看下吧2016-07-07

