jquery – OpenID和Iframes

前端之家收集整理的这篇文章主要介绍了jquery – OpenID和Iframes前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在iframe中使OpenID工作时遇到了一些麻烦. @H_301_2@基本上我在主页上加载了一些重型内容,我想构建一个登录系统,其中页面不需要重新加载(因此再次重新加载所有内容).我使用堆栈交换网站爱上了OpenID,并将其与其他项目进行了相对较好的整合.

@H_301_2@我觉得要做我想做的事情我想尝试使用iframe(因为新的窗户让我哭泣),但是我偶然发现在中间某处的某种形式的障碍,因为我的生活无法工作发生了什么…

@H_301_2@基本上我在jQuery生成的DIV和openID表单中有一个表单,似乎可以动态加载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>
@H_301_2@据我所知,一切正常.

@H_301_2@我的问题在于我重新定向到openID远程站点(再次使用JS沿着这些行:)

echo("<div><p><center>Redirecting...</center></div>");

  echo "<script type='text/javascript'>

  function delayer() {

this.location = '".$url."'

}

setTimeout('delayer()',3000)

</script>";
@H_301_2@对不起,这有点长,但这是我的问题(最后):这对我尝试的一些OID网站工作正常,但有些给我带来问题:谷歌根本不会加载,雅虎和mySpace打开在iframe中很好然后立即将整个窗口重定向到主页和OID页面,并且wordpress返回错误.

@H_301_2@我假设这是一个反制措施,以阻止我窃取登录详细信息(这不是我想要实现顺便说一句,因此序言),这很公平,但仍然血腥加重.

@H_301_2@这里有什么东西,我做得很迟钝,有什么方法围绕这个,如果上述两者都不是我唯一的其他选择来创建新的窗口或建立我自己的登录/注册.

@H_301_2@如果你有这么远,非常感谢你的时间,我希望你不要太在意拼写错误.

解决方法

尝试在弹出窗口中运行登录(window.open或< a href =“”target =“login”>).这样window.top == window这样的网站就不会被iframed了.然后当你回到自己的身边时,你可以发送一个身份验证cookie和一个< script> self.close()< / script>

猜你在找的jQuery相关文章