JavaScript - 替换插件中的函数

时间:2013-12-27 07:43:59

标签: jquery

我正在使用head.js函数来帮助加载JS& CSS文件并行。

我也在使用Google Minify,我在head.js的以下函数中发现了一个问题:

Head.js代码:http://cdnjs.cloudflare.com/ajax/libs/headjs/1.0.3/head.load.js

function getExtension(url) {
    url = url || "";

    var items = url.split("?")[0].split(".");
    return items[items.length-1].toLowerCase();
}

此函数用于确定文件是否为CSS - 基本上如果它没有返回CSS,则认为它是JS。

我的minify文件使用如下:

includes/min/?g=site_index_css

因此,当这些运行通过getExtension时?意味着他们不返回CSS,因此被视为JS。

我按如下方式声明插件:

<script type="text/javascript" src="scripts/js/head.load.min.js"></script>

并使用以下内容来使用它:

<script>
  head.load("includes/min/?g=site_activity_css");
</script>

如何替换head.js中的getExtension?我看过其他与这种功能替换相关的帖子,但我仍然对如何做到这一点感到困惑。

thankyou - 注意:我会在工作后将此问题发送给head.js的所有者,这样他就可以在有空的时候更新。


这就是我在...中尝试的方式...这是我应该如何添加代码?

<script type="text/javascript" src="scripts/js/head.load.min.js"></script>
<script>
  function getExtension(url) {
    url = url || "";

    var ext = '';
    if(ext = url.match(/(?<=&type=)[a-z]+/))
        return ext[0];

    var items = url.split("?")[0].split(".");
    return items[items.length-1].toLowerCase();
  }
</script>


<script>
  head.load("includes/min/?g=site_activity_css&type=css");
</script>

以下是此问题的Head.JS GitHub网址 - https://github.com/headjs/headjs/issues/287

1 个答案:

答案 0 :(得分:0)

也许这个:

function getExtension(url) {
    url = url || "";

    var ext = '';
    if(ext = url.match(/type=[a-z]+/i))
        return ext[0].substr(5).toLowerCase();

    var items = url.split("?")[0].split(".");
    return items[items.length-1].toLowerCase();
}

并加载:

head.load("includes/min/?g=site_activity_css&type=css");