动态加载CSS和JS文件

时间:2014-05-30 03:32:19

标签: javascript css html5 codeigniter

大家好日子。

我对动态加载CSS和JS文件有一些疑问。

我知道周围有很多这样的问题。但我关心的是:

我应该使用后端程序来加载CSS和JS吗?

示例:

if($page == "abc.com") {
    echo "<link href='abc.css' />";
else if($page == "def.com") {
    echo "<link href='def.css' />";
else {
    echo "<link href='ghi.css' />";
}

在特定页面中使用特定于函数加载的CSS,但它在&lt; body&gt;内部声明部分。

Dynamically Add CSS and JS File - CodeIgniter

在abc.com内部

add_css(array('metro-admin.css', 'abc.css'));  
echo put_headers();

源代码看起来像这样。

enter image description here

1 个答案:

答案 0 :(得分:-1)

好的我有一个解决方案,而不是在PHP中明确声明css,让PHP回显一个<script>标记,以便PHP在前端不会过多地侵入。

if($page == "abc.com") {
    echo "<script src='abc.js'></script>";
else if($page == "def.com") {
    echo "<script src='def.js'></script>";
else {
    echo "<script src='ghi.js'></script>";
}

好的,PHP已经完成了,现在我们将在各个脚本文件中破解脚本执行。

- == ABC.JS === -

  var includeFiles = [ 
    'abc'
  ];

    for (var i = 0; i < includeFiles.length; i++) {
        $('head').append("<link rel='stylesheet' href=' +includeFiles[i]+ ".css'>");
    }

当然,您对每个文件应用相同的代码,这可能会在DRY上崩溃,但由于此脚本只有在明确回显时才会执行PHP,它不会重复,所以双方都存在争论。

为什么要使用ARRAY?可移植性,如果你想在每个页面添加多个CSS文件,那么只需简单地将CSS文件名添加到数组中,循环就会相应地接受它。