자바스크립트를 이용해서 설정에 따라
적용된 글자를 미리 보는 간단한 프로그램이다.
주로 getElementByID와 String 메서드를 사용한다.
HTML
<body>
<div>
<input type="text" id="onText">
<button onclick="previewStr()">미리 보기</button>
<br>
색상:
<select id="color">
<option value = "red">빨강</option>
<option value = "blue">파랑</option>
<option value = "green">녹색</option>
</select>
<br>
크기:
<select id="size">
<option value = "1">1</option>
<option value = "2">2</option>
<option value = "3">3</option>
<option value = "4">4</option>
<option value = "5">5</option>
<option value = "6">6</option>
<option value = "7">7</option>
</select>
<br>
<table>
<tr>
<td><input name="fontOption" type="checkbox" value="strike">취소선</td>
<td><input name="fontOption" type="checkbox" value="big">크게</td>
<td><input name="fontOption" type="checkbox" value="small">작게</td>
<td><input name="fontOption" type="checkbox" value="bold">두껍게</td>
<td><input name="fontOption" type="checkbox" value="italics">기울임</td>
</tr>
<tr>
<td><input name="fontOption" type="checkbox" value="sub">위첨자</td>
<td><input name="fontOption" type="checkbox" value="sup">아래첨자</td>
<td><input name="fontOption" type="checkbox" value="upper">소문자로</td>
<td><input name="fontOption" type="checkbox" value="lower">대문자로</td>
</tr>
</table>
<span id="resultStr"></span>
</div>
</body>
document 객체의 getElementByID(), getElementsByName(), getElementsByTagName()
메서드를 사용할 것이기 때문에 최대한 필터링하기 편하도록 HTML에서 태그들의 Id와 Name을 지정한다.
JavaScript 코드
<script language="javascript">
function previewStr(){
//입력된 문자 가져옴
var result = document.getElementById("onText").value;
//글자색 넣기
var selectedColor = document.getElementById("color").value;
result = result.fontcolor(selectedColor);
//글자옵션
var fontOptions = document.getElementsByName("fontOption");
var checkedFontOptions = [];
//체크된 것만 array에 추가
for(var i=0; i<fontOptions.length; i++){
if(fontOptions[i].checked){
checkedFontOptions.push(fontOptions[i].value);
}
}
//폰트옵션 적용
for(var i=0; i<checkedFontOptions.length; i++){
if(checkedFontOptions[i] == "strike"){
result = result.strike();
}
else if(checkedFontOptions[i] == "big"){
result = result.big();
}
else if(checkedFontOptions[i] == "small"){
result = result.small();
}
else if(checkedFontOptions[i] == "bold"){
result = result.bold();
}
else if(checkedFontOptions[i] == "italics"){
result = result.italics();
}
else if(checkedFontOptions[i] == "sub"){
result = result.sub();
}
else if(checkedFontOptions[i] == "sup"){
result = result.sup();
}
else if(checkedFontOptions[i] == "upper"){
result = result.toLowerCase();
}
else if(checkedFontOptions[i] == "lower"){
result = result.toUpperCase();
}
}
//글자크기
var selectedSize = document.getElementById("size").value;
result = result.fontsize(selectedSize);
document.getElementById("resultStr").innerHTML = result;
}
</script>
* 전체코드 더보기
더보기
<html>
<head>
<title>글자 미리보기</title>
<script language="javascript">
function previewStr(){
//입력된 문자 가져옴
var result = document.getElementById("onText").value;
//글자색 넣기
var selectedColor = document.getElementById("color").value;
result = result.fontcolor(selectedColor);
//글자옵션
var fontOptions = document.getElementsByName("fontOption");
var checkedFontOptions = [];
//체크된 것만 array에 추가
for(var i=0; i<fontOptions.length; i++){
if(fontOptions[i].checked){
checkedFontOptions.push(fontOptions[i].value);
}
}
//폰트옵션 적용
for(var i=0; i<checkedFontOptions.length; i++){
if(checkedFontOptions[i] == "strike"){
result = result.strike();
}
else if(checkedFontOptions[i] == "big"){
result = result.big();
}
else if(checkedFontOptions[i] == "small"){
result = result.small();
}
else if(checkedFontOptions[i] == "bold"){
result = result.bold();
}
else if(checkedFontOptions[i] == "italics"){
result = result.italics();
}
else if(checkedFontOptions[i] == "sub"){
result = result.sub();
}
else if(checkedFontOptions[i] == "sup"){
result = result.sup();
}
else if(checkedFontOptions[i] == "upper"){
result = result.toLowerCase();
}
else if(checkedFontOptions[i] == "lower"){
result = result.toUpperCase();
}
}
//글자크기
var selectedSize = document.getElementById("size").value;
result = result.fontsize(selectedSize);
document.getElementById("resultStr").innerHTML = result;
}
</script>
</head>
<body>
<div>
<input type="text" id="onText">
<button onclick="previewStr()">미리 보기</button>
<br>
색상:
<select id="color">
<option value = "red">빨강</option>
<option value = "blue">파랑</option>
<option value = "green">녹색</option>
</select>
<br>
크기:
<select id="size">
<option value = "1">1</option>
<option value = "2">2</option>
<option value = "3">3</option>
<option value = "4">4</option>
<option value = "5">5</option>
<option value = "6">6</option>
<option value = "7">7</option>
</select>
<br>
<table>
<tr>
<td><input name="fontOption" type="checkbox" value="strike">취소선</td>
<td><input name="fontOption" type="checkbox" value="big">크게</td>
<td><input name="fontOption" type="checkbox" value="small">작게</td>
<td><input name="fontOption" type="checkbox" value="bold">두껍게</td>
<td><input name="fontOption" type="checkbox" value="italics">기울임</td>
</tr>
<tr>
<td><input name="fontOption" type="checkbox" value="sub">위첨자</td>
<td><input name="fontOption" type="checkbox" value="sup">아래첨자</td>
<td><input name="fontOption" type="checkbox" value="upper">소문자로</td>
<td><input name="fontOption" type="checkbox" value="lower">대문자로</td>
</tr>
</table>
<span id="resultStr"></span>
</div>
</body>
</html>
String 메서드
https://www.w3schools.com/jsref/jsref_obj_string.asp
참고 문헌 : w3schools.com
'Front-End > HTML, CSS, JS' 카테고리의 다른 글
[JS] 회원가입 페이지 사용자 입력 유효성 검사 (정규식, 비정규식) (0) | 2022.09.14 |
---|---|
[JS] 자바스크립트 공학용 계산기 만들기 (1) | 2022.09.13 |
[HTML] <form>을 사용한 로그인 페이지 구현 (audio 음악재생) (0) | 2022.09.10 |