ошибка кросс-протокола jquery

Я работаю над страницей mvc, которая позволяет пользователям безопасно входить в систему через модальное окно colorbox. модальное выложено примерно так:

<html>
  <body>
    <div id="overlay" style="display: block;" class="overlay"> <div>
    <div id="colorbox" style="display: block;">
        <iframe id="logonIFRAME">
            logon form is in this ssl iframe 
        </iframe>
    </div>
    <div id="restofpage"> </div>
  </body>
</html>

это базовая схема.

что происходит, когда форма iframe аутентифицируется, она вызывает parent.$.fn.colorbox.close(), который закрывает модальное окно и перезагружает родительскую страницу.

теперь проблема заключается в том, что скрипт colorbox.close находится на родительской странице (а не в iframe), поэтому его нельзя вызвать из iframe из-за разных протоколов (https и http).

Итак, как я могу либо вызвать кросс-протокол сценария (что, я думаю, вы не можете сделать), либо из iframe установить для атрибута отображения div colorbox значение none и скрыть наложение. это также скроет модальное окно, но может ли код в iframe общаться с родительскими страницами html? если бы это было возможно, я бы использовал что-то вроде:

$('#colorbox').attr('style', 'display: none;');

но этот jquery не работает.

у кого-нибудь есть идеи, как лучше поступить?


person AaronS    schedule 11.06.2010    source источник


Ответы (1)


Это своего рода взлом, о котором я думаю ... При успешном входе в систему перенаправление на обычную страницу означает наличие http, и в этом вы пишете свой код для вызова родительских окон, просто добавляя javascript.

Я обнаружил, что это работает для меня, надеюсь, что это сработает и для вас. однако это не чистое решение, а просто обходной путь

Имран

person IBhadelia    schedule 18.01.2011