jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。在 Web 开发中,经常需要在子页面和父页面之间传递数据。
当需要在子页面和父页面之间共享数据时,可以使用 jQuery 进行数据传递。例如,在一个复杂的 Web 应用中,用户在一个子页面填写了一些信息,然后需要将这些信息传递回父页面进行进一步处理。
子页面 (child.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Child Page</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<input type="text" id="data" placeholder="Enter data">
<button id="submit">Submit</button>
<script>
$(document).ready(function() {
$('#submit').click(function() {
var data = $('#data').val();
window.location.href = 'parent.html?data=' + encodeURIComponent(data);
});
});
</script>
</body>
</html>
父页面 (parent.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Parent Page</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div id="result"></div>
<script>
$(document).ready(function() {
var urlParams = new URLSearchParams(window.location.search);
var data = urlParams.get('data');
if (data) {
$('#result').text('Received data: ' + decodeURIComponent(data));
}
});
</script>
</body>
</html>
子页面 (child.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Child Page</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<input type="text" id="data" placeholder="Enter data">
<button id="submit">Submit</button>
<script>
$(document).ready(function() {
$('#submit').click(function() {
var data = $('#data').val();
window.opener.postMessage(data, '*');
window.close();
});
});
</script>
</body>
</html>
父页面 (parent.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Parent Page</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div id="result"></div>
<script>
$(document).ready(function() {
window.addEventListener('message', function(event) {
if (event.origin !== 'http://example.com') return; // 确保消息来源安全
var data = event.data;
$('#result').text('Received data: ' + data);
});
});
</script>
</body>
</html>
window.postMessage
方法来解决跨域问题。window.postMessage
时,需要验证消息的来源,以防止安全漏洞。通过以上方法,可以有效地在 jQuery 中实现子页面到父页面的数据传递。
领取专属 10元无门槛券
手把手带您无忧上云