특정 html 페이지에서 <a>
태그를 클릭했을 때, 링크된 html 페이지로 넘어가며 데이터를 전달하는 두 가지 방법에 대해 설명한다.
링크로 이동해서 도착할 페이지(데이터를 받을 페이지) url의 뒤에 데이터를 붙여서 보내는 방법이다.
decodeURI()
로 디코딩 해주어야 한다.send.html
<head>
<script src="send.js" defer></script>
</head>
<body>
<a href=""/>
</body>
send.js
// 보낼 데이터
const data = 'data';
const aTag = document.querySelector('a');
aTag.addEventListener('click', () => {
location.href = `receive.html?${data}`;
});
receive.js
const receivedData = location.href.split('?')[1];
console.log(receivedData); // data
// 전달받은 데이터가 한글일 경우
console.log(decodeURI(receivedData));
데이터가 url에 노출되면 안 되거나 양이 많을 경우에 사용한다.
send.html
<head>
<script src="send.js" defer></script>
</head>
<body>
<a href="receive.html"/>
</body>
send.js
// 전달할 데이터
const userInfo = {
id: "아이디",
name: "이름",
password: "비밀번호",
}
const aTag = document.querySelector('a');
aTag.addEventListener('click', () => {
localStorage.setItem("user-info", JSON.stringify(userInfo));
});
receive.js
const { id, name, password } = JSON.parse(localStorage.getItem("user-info"));
localStorage.remove("user-info");
console.log(id, name, password); // 아이디 이름 비밀번호
좋은 글 좋아요~