动态加载外部 css 资源模型端
Dynamically load external css resources model side
我需要动态加载外部 css 资源来更改页面的字体系列。
在我的 SPA 中,用户为 UI 选择他喜欢的字体系列。所以他 copy/paste 字体系列从 https://fonts.google.com 到输入标签,我需要相应地更改页面字体系列 属性.
为了做到这一点,我需要加载字体的外部资源,例如<link href="https://fonts.googleapis.com/css?family=<FONTFAMILYNAME>" rel="stylesheet">
,然后将css分配给font-family: 'Indie Flower', cursive;
到页面,那不是使用 css 绑定时出现问题。
如何从模型端执行此操作?
更新
该应用程序是使用 Aurelia js 框架开发的,所以我指的是 Aurelia 模型,但是(仍在客户端)
希望是你所期待的
let btn = document.getElementById("btn");
let inpt = document.getElementById("inpt");
let fontsLink = document.getElementById("fontsLink");
btn.addEventListener('click', function() {
let font = inpt.value;
font = font.trim();
font = font.replace(/ /g, '+');
let link = `
https://fonts.googleapis.com/css?family=${font}
`
fontsLink.href = link;
document.querySelector('body').style.fontFamily = `${inpt.value}`;
});
* {
box-sizing: border-box;
font-family: inherit;
}
html {
font-size: 62.25%;
}
body {
font-family: sans-serif;
font-size: 1.6rem;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World From Gaurav</title>
<link rel="stylesheet" href="" id="fontsLink">
</head>
<body>
<h1 id="demo" contenteditable="true">Change Text</h1>
<input id="inpt" type="" placeholder="Type Font Name">
<button id="btn">Load</button>
</body>
</html>
我需要动态加载外部 css 资源来更改页面的字体系列。
在我的 SPA 中,用户为 UI 选择他喜欢的字体系列。所以他 copy/paste 字体系列从 https://fonts.google.com 到输入标签,我需要相应地更改页面字体系列 属性.
为了做到这一点,我需要加载字体的外部资源,例如<link href="https://fonts.googleapis.com/css?family=<FONTFAMILYNAME>" rel="stylesheet">
,然后将css分配给font-family: 'Indie Flower', cursive;
到页面,那不是使用 css 绑定时出现问题。
如何从模型端执行此操作?
更新
该应用程序是使用 Aurelia js 框架开发的,所以我指的是 Aurelia 模型,但是(仍在客户端)
希望是你所期待的
let btn = document.getElementById("btn");
let inpt = document.getElementById("inpt");
let fontsLink = document.getElementById("fontsLink");
btn.addEventListener('click', function() {
let font = inpt.value;
font = font.trim();
font = font.replace(/ /g, '+');
let link = `
https://fonts.googleapis.com/css?family=${font}
`
fontsLink.href = link;
document.querySelector('body').style.fontFamily = `${inpt.value}`;
});
* {
box-sizing: border-box;
font-family: inherit;
}
html {
font-size: 62.25%;
}
body {
font-family: sans-serif;
font-size: 1.6rem;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World From Gaurav</title>
<link rel="stylesheet" href="" id="fontsLink">
</head>
<body>
<h1 id="demo" contenteditable="true">Change Text</h1>
<input id="inpt" type="" placeholder="Type Font Name">
<button id="btn">Load</button>
</body>
</html>