<font color=#27cf5e size=4>前言</font>


很多时候,我们并不需要每一个网站的页面都加载某个JS文件,就比如说吧,在《给文章加入一个精美的HTML5音乐播放器》这篇文章当中,我们有介绍了APlayer。那么,通常我们需要将APlayer.min.js插入到footer.php。可是对于一个博客网站来讲 也并不是十有八九篇文章需要用到音乐播放器,最好的解决办法就是在需要用到音乐播放器的文章或者独立页面加载APlayer.min.js就好了,其他的页面则不加载。嗯……相信你也想到这个方法了,我也进行尝试过,可是通过PJAX打开那个页面的时候则无法显示播放器,需要刷新一次才可以。这貌似是PJAX本身的问题,PJAX加载带有<script type="text/javascript" src="xxx.js"></script> javascript inline的时候,存在无法加载的情况。PJAX的机制是自动异步加载html内容,然后会自动将script[src]的内容加入到<head>标签最后,但经常会出现问题,这个机制是为了减少js的请求次数,不必每次都加载js,但产生bug的具体原因不明。(看了很多博主的博客都无法解决这个问题,如果你知道解决方法不妨留言)

<font color=#27cf5e size=4>解决方法</font>


通过新标签页(target="blank")便可解决,首先我们先需要引入Jquery,然后我们只需要在footer.php插入以下代码(自行修改代码中的链接为需要单独加载JS的文章/独立页面)

<script type="text/javascript">
$('a[href^="https://www.ryongyon.com/about.html"], a[href^="https://www.ryongyon.com/about.html"]').each(function() {
    $(this).attr('target', "_blank");
});
</script>

这样子就没问题了,接下来我们只需要在文章/独立页面的内容直接插入JS文件即可

如下图:
示例图
效果:
效果演示

<font color=#27cf5e size=4>最后说点啥</font>


这个方法献给有“洁癖”或追求网站加载速度的朋友,原因很简单,假如你的100篇文章里只有10篇需要用到音乐播放器,那么何必在每次加载页面的时候都多一个Js请求呢?虽然可能微不足道,不过看个人啦,233~