2017-04-12 77 views
0

前標籤我有CMS使用代碼美化爲語法高亮的網頁條件加載JS - 如果在內容

只有10%的代碼,並使用預先標記

<pre class="prettyprint"> 

語法高亮顯示。

但prettify.js被裝載上的所有網頁,並增加了加載時間

是可以根據代碼預標籤的存在有條件負荷prettify.js?

+0

是的,簡單。檢查是否有class prettyprint,通過附加腳本標籤加載腳本手動初始化相紙。 – dfsq

回答

0

此代碼將完成這項工作。檢查pre元素是否在範圍內。如果是這樣,然後將腳本添加到頭部。

$(document).ready(function() { 
      if($('pre').length){ 
       $('head').append('<script src="pretify.js></script>'); 
      }); 
     }); 

如果您希望基於類而不是html元素來實現,那麼您將不得不使用.classname而不是元素名稱本身。

$(document).ready(function() { 
       if($('.prettyclass').length){ 
        $('head').append('<script src="pretify.js></script>'); 
       }); 
      }); 
0

這如果添加它下面的所有<pre>標籤和更換<path>通配符與真實地址就可以了。

<script type="text/javascript"> 
    if (document.querySelectorAll("pre.prettyprint").length > 0) { 
     var script = document.createElement("script"); 

     script.src = "<path>/prettify.js"; 

     document.head.appendChild(script); 
    } 
</script>