Как загрузить файл CSS на основе URL или клиента
У меня есть два CSS-файла в моем сенсорном приложении Sencha. Позвоним им A.css
а также B.css
, Основываясь на URL, я хочу, чтобы приложение загружало разные CSS.
Допустим, URL-адрес 1 www.website.com/#1
так что для этого я бы хотел загрузить A.css
, аналогично URL 2 www.website.com/#2
так что для этого я бы хотел загрузить B.css
Можно ли загружать CSS динамически на основе URL?
4 ответа
Вы можете использовать Javascript Regex для этого. Очень простой метод
// 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 */
}
Надеюсь это поможет!!!
Я предполагаю, что у вас есть один шаблон для 2 URL. Загрузка CSS с использованием javascript - довольно плохая практика, потому что она медленная и дает пользователю плохой опыт, поскольку изначально ничего не стилизовано.
В любом случае вы можете использовать функцию добавления, чтобы добавить CSS к вашей голове.
$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', 'your stylesheet url') );
А для самого URL просто используйте JS window.location следующим образом:
if (window.location == "#1url") {
// load A.css using the append function above
}
Получить значение хеш-тега из URL, а затем в зависимости от значения изменить ссылку для CSS
получить значение хеш-тега
$url = "www.website.com/#1";
$params = parse_url($url);
$value = $params['fragment'];
это даст вам значение хеш-тега, а затем в зависимости от значения ссылки файл 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 для динамической загрузки 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);
}