Html 如何基于URL或客户端加载CSS文件?

Html 如何基于URL或客户端加载CSS文件?,html,css,dynamic,stylesheet,sencha-touch-2.3,Html,Css,Dynamic,Stylesheet,Sencha Touch 2.3,我的Sencha touch应用程序中有两个CSS文件。让我们把它们称为A.css和B.css。根据URL,我希望应用程序加载不同的CSS 假设URL 1是www.website.com/#1,因此我想加载A.css。同样,URL 2是www.website.com/#2,因此我想加载B.css 是否可以根据URL动态加载CSS?您可以使用以下JavaScript代码动态加载CSS以满足您的需求: if (window.location == "http://www.website.com/#1

我的Sencha touch应用程序中有两个CSS文件。让我们把它们称为
A.css
B.css
。根据URL,我希望应用程序加载不同的CSS

假设URL 1是
www.website.com/#1
,因此我想加载
A.css
。同样,URL 2是
www.website.com/#2
,因此我想加载
B.css


是否可以根据URL动态加载CSS?

您可以使用以下JavaScript代码动态加载CSS以满足您的需求:

if (window.location == "http://www.website.com/#1") {
     LoadCSS("A.css")
}
else if(window.location == "http://www.website.com/#2") {
     LoadCSS("B.css")
}

function LoadCSS(filename) {
     var fileref = document.createElement("link");
     fileref.setAttribute("rel", "stylesheet");
     fileref.setAttribute("type", "text/css");
     fileref.setAttribute("href", filename);
}

您可以使用以下JavaScript代码根据需要动态加载CSS:

if (window.location == "http://www.website.com/#1") {
     LoadCSS("A.css")
}
else if(window.location == "http://www.website.com/#2") {
     LoadCSS("B.css")
}

function LoadCSS(filename) {
     var fileref = document.createElement("link");
     fileref.setAttribute("rel", "stylesheet");
     fileref.setAttribute("type", "text/css");
     fileref.setAttribute("href", filename);
}

我假设您有一个模板可用于2个URL。使用JavaScript加载CSS是一种非常糟糕的做法,因为它速度很慢,而且它给用户带来了糟糕的体验,因为最初没有任何样式

无论如何,您可以使用append函数将CSS添加到head标记中

$('head')
  .append( $('<link rel="stylesheet" type="text/css" />')
  .attr('href', 'your_stylesheet_url') );

我假设您有一个模板可用于2个URL。使用JavaScript加载CSS是一种非常糟糕的做法,因为它速度很慢,而且它给用户带来了糟糕的体验,因为最初没有任何样式

无论如何,您可以使用append函数将CSS添加到head标记中

$('head')
  .append( $('<link rel="stylesheet" type="text/css" />')
  .attr('href', 'your_stylesheet_url') );

从URL获取hashtag值,然后根据该值更改CSS的链接

要获取hashtag值,请执行以下操作:

$url = "www.website.com/#1";
$params = parse_url($url);

$value = $params['fragment'];
这将为您提供hashtag值,然后根据标头中的值链接CSS文件:

<?php if ($value == 1) { ?>
<link href="A.css" rel="stylesheet" type="text/css" />
<?php } else { ?>
<link href="B.css" rel="stylesheet" type="text/css" />
<?php } ?>

从URL获取标签值,然后根据该值更改CSS的链接

要获取hashtag值,请执行以下操作:

$url = "www.website.com/#1";
$params = parse_url($url);

$value = $params['fragment'];
这将为您提供hashtag值,然后根据标头中的值链接CSS文件:

<?php if ($value == 1) { ?>
<link href="A.css" rel="stylesheet" type="text/css" />
<?php } else { ?>
<link href="B.css" rel="stylesheet" type="text/css" />
<?php } ?>

您可以使用JavaScript正则表达式进行此操作

非常简单的方法:

    // For www.website.com/#1
    if (/www.website.com\/#1/.test(window.location.href)) {
        /* Your Code Here For Loading Css */
    }

    // For www.website.com/#2
    if (/www.website.com\/#1/.test(window.location.href)) {
        /* Your Code Here For Loading Css */
    }

我希望这有帮助

您可以使用JavaScript正则表达式来实现此目的

非常简单的方法:

    // For www.website.com/#1
    if (/www.website.com\/#1/.test(window.location.href)) {
        /* Your Code Here For Loading Css */
    }

    // For www.website.com/#2
    if (/www.website.com\/#1/.test(window.location.href)) {
        /* Your Code Here For Loading Css */
    }

我希望这有帮助

尽管您努力给出了答案,但他并没有要求jquery的答案。(参见标记)顺便说一下,Jquery是一个跨平台的Javascript库。你的论点是无效的,Javascript从来都不是一个坏习惯,大概也不是一个坏习惯。尽管如此,在使用Jquery时您仍然在使用Javascript。标记当时已经被编辑过了。jquery以前是其中一个标记。使用js在domready上加载css是一种糟糕的做法。出于明显的可用性原因,css应该总是在任何javascript之前加载。尽管你努力给出了答案,但他并没有要求jquery给出答案。(参见标记)顺便说一下,Jquery是一个跨平台的Javascript库。你的论点是无效的,Javascript从来都不是一个坏习惯,大概也不是一个坏习惯。尽管如此,在使用Jquery时您仍然在使用Javascript。标记当时已经被编辑过了。jquery以前是其中一个标记。使用js在domready上加载css是一种糟糕的做法。出于明显的可用性原因,css应该总是在任何javascript之前加载。