在JavaScript中,获取两个页面的数据类型通常涉及到跨文档通信(Cross-Document Communication, CDC)。以下是一些基础概念和相关方法:
postMessage
可以精确控制哪些数据可以被传递,以及哪些源可以接收数据。假设我们有两个页面,pageA.html
和pageB.html
,并且pageB.html
被嵌入到pageA.html
中的一个iframe里。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page A</title>
</head>
<body>
<iframe id="myIframe" src="pageB.html"></iframe>
<script>
window.addEventListener('message', function(event) {
// 检查消息来源是否可信
if (event.origin !== 'http://example.com') return;
console.log('Received data type:', typeof event.data);
console.log('Received data:', event.data);
});
// 向iframe发送消息
document.getElementById('myIframe').contentWindow.postMessage('Hello from Page A', 'http://example.com');
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page B</title>
</head>
<body>
<script>
window.addEventListener('message', function(event) {
// 检查消息来源是否可信
if (event.origin !== 'http://example.com') return;
console.log('Received message:', event.data);
// 发送响应到父页面
event.source.postMessage({ key: 'value' }, event.origin);
});
</script>
</body>
</html>
event.origin
以确保消息来自预期的源。postMessage
的支持可能有所不同。通过上述方法和注意事项,可以在JavaScript中有效地获取和处理来自不同页面的数据类型。
领取专属 10元无门槛券
手把手带您无忧上云