<iframe>
是 HTML 中的一个标签,用于在网页中嵌入另一个 HTML 文档。它可以加载不同域名和服务器上的内容。
<iframe>
可以将嵌入的内容与主页面隔离开来,避免样式和脚本冲突。<iframe>
,从而复用代码。<iframe>
可以加载来自不同域名的内容,但默认情况下,浏览器会阻止跨域脚本访问。name
属性的 <iframe>
。name
属性的 <iframe>
,可以通过 window.frames
访问。<iframe>
实现多个窗口的交互。<iframe>
加载。当 <iframe>
加载的内容来自不同域名时,浏览器会阻止跨域脚本访问,这是出于安全考虑(同源策略)。例如,如果主页面在 example.com
,而 <iframe>
加载的内容在 otherdomain.com
,则无法直接通过 JavaScript 访问 <iframe>
中的内容。
浏览器的同源策略限制了不同源之间的脚本访问。同源是指协议、域名和端口都相同。
Access-Control-Allow-Origin
头,允许特定域名访问资源。Access-Control-Allow-Origin
头,允许特定域名访问资源。window.postMessage
方法在不同窗口之间安全地传递消息。window.postMessage
方法在不同窗口之间安全地传递消息。<!DOCTYPE html>
<html>
<head>
<title>Main Page</title>
</head>
<body>
<iframe id="myIframe" src="https://otherdomain.com/content.html"></iframe>
<script>
const iframe = document.getElementById('myIframe');
iframe.onload = () => {
iframe.contentWindow.postMessage('Hello from parent', 'https://otherdomain.com');
};
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Iframe Content</title>
</head>
<body>
<script>
window.addEventListener('message', (event) => {
if (event.origin !== 'https://example.com') return;
console.log('Message received:', event.data);
event.source.postMessage('Hello from iframe', event.origin);
});
</script>
</body>
</html>
通过以上方法,可以在不同域名和服务器之间安全地进行数据交互。
领取专属 10元无门槛券
手把手带您无忧上云