微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – OpenID和Iframes

我在iframe中使OpenID工作时遇到了一些麻烦.

基本上我在主页上加载了一些重型内容,我想构建一个登录系统,其中页面不需要重新加载(因此再次重新加载所有内容).我使用堆栈交换网站爱上了OpenID,并将其与其他项目进行了相对较好的整合.

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

基本上我在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>

据我所知,一切正常.

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

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

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

  function delayer() {

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

}

setTimeout('delayer()',3000)

</script>";

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

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

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

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

解决方法

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

原文地址:https://www.jb51.cc/jquery/178253.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐