2013-06-20 6 views
0

Я использую стороннюю систему бронирования в iframe на моем сайте. Когда пользователи делают бронирование, они получают электронное письмо с подтверждением, которое указывает прямо на страницу бронирования (которую я обычно показываю внутри iframe). Таким образом, пользователь видит только календарь вместо всей страницы с календарем в iframe.Убедитесь, что страница всегда загружается в iframe

Есть ли способ проверить, загружается ли страница внутри iframe, а если нет, загрузите родительскую страницу вокруг нее?

+0

iframes .... brrrr ... они такие 90-е годы: P –

+0

То, что вы просите, может быть сделано, но вам понадобится последовательность, чтобы все это было сделано. – andlrc

+0

Я знаю, я тоже ненавижу iframes, но мы должны были включить этот календарь, и это казалось единственным вариантом ... @NULL: предложите последовательность в ответе, и я попробую. – bikey77

ответ

0

Надеюсь, что вы получите точку:

IFrame-page.html

<script> 
    if (window.top == window.self) { 
     location.replace('site.html?path=' + encodeURIComponent(location.href)); 
    } 
</script> 

site.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> 

Но вы, возможно, возникнут проблемы с Same Origin Policy

+0

Это выглядит хорошо, я дам ему попробовать и дам вам знать. – bikey77

0

В JavaScript * window.top * должен быть как окна, но в окне IFrame не равно window.top.

<script>if(window.top != window) window.top.location = 'PARENT_URL';</script> 
Смежные вопросы