У меня есть определенное создание проблемы работа OpenID из iframe.
в основном у меня есть некоторое жестокое содержание, загруженное на основной странице, и я хочу создать журнал в системе, где страница не должна быть перезагружена (и таким образом перезагрузите все то содержание снова). Я влюбился в OpenID от использования веб-сайтов обмена стека и межтер его относительно хорошо в другие проекты.
Я чувствую, чтобы сделать то, что я хочу сделать, я хотел бы попытаться использовать iframe (потому что новые окна заставляют меня кричать), однако я споткнулся в некоторой форме препятствия где-нибудь около середины и ни за что в жизни не могу разработать то, что продолжается...
в основном у меня есть форма в jQuery, генерировал DIV и открыл форму, которая, кажется, работает для динамичной загрузки iframe. что-то вдоль этих строк:
<script type="text/javascript">
contentboxs = 0;
function contentbox() {
if (contentboxs == 0){
$('#mainpage').append("<div id='contentbox'><div style='clear:both;' id='oritext'></div><div id='f_content'><iframe src ='' name='framedcontent' width='580' height='600' scrolling='false'></iframe></div></div>");
$('#f_content').hide();
contentboxs++;
} else {
$('#contentbox-wipe').remove();
$('#contentbox').remove();
contentboxs--;
}
}
function loginpanel(){
contentbox();
if (contentboxs == 1){
$('#oritext').append("<form method='post' action='login.php' name='oidform' target='framedcontent'>Please Select your OpenID Provider: <br/><input type='text' name=\"id\" id='openidbox' /><br /><input type='submit' name='submit' value='Log In' onclick='loginsubmit();' ></form>");
}
}
function loginsubmit() {
$('#oritext').html('');
$('#contentbox').animate({'height':'600px', 'width':'700px', 'margin-top' : '-300px', 'margin-left' : '-350px'},500, 'linear', function() { $('#f_content').show(); });
}
</script>
<a href='javascript:loginpanel();'>login</a>
и насколько я могу сказать, что это все хорошо работает.
моя проблема возникает в моем перенаправлении у открытых удаленных сайтов (снова выполнение его с JS вдоль этих строк:)
echo("<div><p><center>Redirecting...</center></div>");
echo "<script type='text/javascript'>
function delayer() {
this.location = '".$url."'
}
setTimeout('delayer()', 3000)
</script>";
извините это немного долго обветрено, но здесь является моей проблемой (наконец): это хорошо работает для некоторых сайтов OID, которые я попробовал, но некоторые дают мне проблемы: Google не загрузится вообще, Yahoo и MySpace, открытый штраф в iframe затем немедленно перенаправляет полное окно к домашней странице и странице OID соответственно, и Wordpress возвращает ошибку.
Я предполагаю, что это - встречная мера, помещенная на месте для остановки меня крадущий данные для входа в систему (thats не, что я пытаюсь достигнуть btw, следовательно преамбула), и это - достаточно справедливое, но все еще кровавое ухудшение.
есть ли любая вещь здесь, что я делаю retardedly, есть ли некоторый окольный путь это, и если ни одно из вышеупомянутого, мои только другие опции создать новые окна или создать мой собственный вход в систему/регистрацию.
Если у Вас есть это далекое большое спасибо в течение Вашего времени, и я надеюсь, что Вы не возражали слишком много против орфографических ошибок.
Попробуйте запустить логин во всплывающем окне (window.open или ). Таким образом window.top==window, и сайты не будут iframed. Затем, когда вы вернетесь на свою сторону, вы можете отправить auth cookie и