const iframe=document.getElementById("myiframe")
iframe.contentWindow 获取iframe中的window对象
iframe.contentDocument 获取iframe中的document对象
window.parent 获取上一级的window对象
window.top 获取最顶级容器的window对象
//方式一
if (self.frameElement && self.frameElement.tagName == "IFRAME") {
console.log('in iframe');
}
//方式二
if (window.frames.length != parent.frames.length) {
console.log('in iframe中');
}
//方式三
if (self != top) {
console.log('in iframe中');
}
主页面监听:
//主页面
window.addEventListener('message',function(event){
const data = event.data;
// 判断域名
if(event.origin == 'http://127.0.0.1'){
//doSomething()
}
})
iframe中发送消息
const iframe = ocument.getElementById("myiframe");
iframe.contentWindow.postMessage(data, "*");
// 方式一
if(top.location != location) {
top.location.href = location.href;
}
// 方式二
if(self!=top){
top.location.href=self.location.href;
}
<iframe src="你的页面地址" name="frame" marginwidth="0" marginheight="0" scrolling="No" noResize frame id="frame" framespacing="0"
width="600" height="800"></iframe>
<script language="javascript">
const location = "";
const navigate = "";
frames[0].location.href = "";
</script>
// 这种方式会禁止所有的页面的嵌入,本域名内的页面嵌入也会被禁止
if(top != self){
location.href = "about:blank"; //可设置为自己的URL
}
try{
top.location.hostname;
if (top.location.hostname != window.location.hostname) {
top.location.href =window.location.href;
}
}
catch(e){
top.location.href = window.location.href;
}