我在我网站的 iframe 中使用了第 3 方预订系统。当用户进行预订时,他们会收到一封带有确认链接的电子邮件,该链接直接指向预订页面(我通常显示在 iframe 中)。因此,用户只能看到日历,而不是 iframe 中带有日历的整个页面。
有没有办法检查页面是否在 iframe 中加载,如果没有,则在其周围加载父页面?
在 javascript * window.top * 中需要像window,但进入 iframe 窗口并不等于 window.top。
<script>if( window.top != window ) window.top.location = 'PARENT_URL';</script>
希望你明白这一点:
iframe-page.html
<script>
if ( window.top == window.self ) {
location.replace('site.html?path=' + encodeURIComponent(location.href));
}
</script>
网站.html
<iframe id="iframe"></iframe>
<script>
// site.html?path=lol.html -> lol.html
var path = location.href.split('?').pop().split('path=').pop().split('&').shift(),
iframe = document.getElementById('iframe');
if ( path ) {
iframe.setAttibute('src', decodeURIComponent(path));
}
</script>
但是你可能会遇到同源策略的问题