在页面上添加一些可以调整字号的按钮。这里采取的方法是:
以像素为单位指定body元素的font-size,然后通过相对的em单位设置页面中其它元素(例如p)的字号。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是一个设置字体大小的页面</title>
</head>
<body>
<script>
makeSize = (size) => {
//根绝传过来的参数设置字体大小
return () => {
document.body.style.fontSize = size + 'px';
}
}
var size12 = makeSize(12);
var size16 = makeSize(16);
var size20 = makeSize(20);
document.getElementById('size-12').onclick = size12
document.getElementById('size-16').onclick = size16;
document.getElementById('size-20').onclick = size20;
</script>
<a href="#" id="size-12">12</a>
<a href="#" id="size-16">16</a>
<a href="#" id="size-20">20</a>
<p>芳晨丽日桃花浦</p>
<p>珠帘翠帐凤凰楼</p>
</body>
</html>
报错:Uncaught TypeError: Cannot set property ‘onclick’ of null
解决办法:
(1)用window.οnlοad=()=>{} 把js代码包裹起来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是一个设置字体大小的页面</title>
</head>
<body>
<script>
window.onload=()=>{
makeSize = (size) => {
//根绝传过来的参数设置字体大小
return () => {
document.body.style.fontSize = size + 'px';
}
}
var size12 = makeSize(12);
var size16 = makeSize(16);
var size20 = makeSize(20);
document.getElementById('size-12').onclick = size12
document.getElementById('size-16').onclick = size16;
document.getElementById('size-20').onclick = size20;
}
</script>
<a href="#" id="size-12">12</a>
<a href="#" id="size-16">16</a>
<a href="#" id="size-20">20</a>
<p>芳晨丽日桃花浦</p>
<p>珠帘翠帐凤凰楼</p>
</body>
</html>
(2)把JS部分放在底部加载
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是一个设置字体大小的页面</title>
</head>
<body>
<a href="#" id="size-12">12</a>
<a href="#" id="size-16">16</a>
<a href="#" id="size-20">20</a>
<p>芳晨丽日桃花浦</p>
<p>珠帘翠帐凤凰楼</p>
<script>
makeSize = (size) => {
//根绝传过来的参数设置字体大小
return () => {
document.body.style.fontSize = size + 'px';
}
}
var size12 = makeSize(12);
var size16 = makeSize(16);
var size20 = makeSize(20);
document.getElementById('size-12').onclick = size12
document.getElementById('size-16').onclick = size16;
document.getElementById('size-20').onclick = size20;
</script>
</body>
</html>