条件加载JS - 如果内容中有预标记

时间:2017-04-12 11:30:52

标签: javascript css

我的CMS使用代码美化来进行语法高亮显示

只有10%的网页有代码并使用预标记

<pre class="prettyprint"> 

用于语法高亮。

但是在所有页面上加载了prettify.js并增加了加载时间

是否可以根据代码中预标记的存在有条件地加载prettify.js?

2 个答案:

答案 0 :(得分: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>');
                });
            });

答案 1 :(得分: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>