【问题标题】:Is it posible to open a window then close the window in javascript?是否可以在javascript中打开一个窗口然后关闭窗口?
【发布时间】:2011-01-24 22:49:17
【问题描述】:

我不知道如何通过这个。我将 openId 与 dotnetopenauth 库一起使用。

我有一些预定义的提供程序,当单击它时,会向服务器发送一个 jquery 并向提供程序发出请求。

我从提供者那里取回 url,然后执行 window.open(....) 并将其作为具有预定义高度和宽度的新窗口打开。

现在他们登录并做所有这些很棒的事情。现在提供商将他们的信息发送给我指定的控制器方法。

现在,在我对它们进行身份验证后,我想转到一个新页面。但是我想在主窗口中打开页面,而不是用 window.open() 打开的窗口。我希望它关闭并消失。

我无法让它工作。它只会开始使用该 window.open() 窗口来加载所有页面,我不希望这样。

所以我不知道该怎么做。

【问题讨论】:

    标签: javascript jquery asp.net-mvc openid dotnetopenauth


    【解决方案1】:

    您只需要保留对第一个窗口的引用即可:

    var oauthWindow =  window.open(....);
    

    稍后:

    oauthWindow.close();
    

    【讨论】:

    • 好吧,如果他们取消了我正在做的事情,因为它返回登录页面并且我关闭了该窗口,所以他们永远不会看到它在辅助窗口中重新加载。但是,一旦提供商告诉我他们已通过身份验证,我想将他们重定向到他们的帐户。因此,当主窗口仍在登录页面上时,它会在辅助窗口中加载他们的帐户。因此,如果我关闭辅助窗口,他们正在查看主登录页面。所以我需要一些如何转移窗户之类的东西。
    • 如果页面不经常重定向也可能会更好,它应该尝试平滑过渡。我开始认为我不能这样做。也许如果我完全控制两个 window.s 中发生的事情
    【解决方案2】:

    可以肯定的是,要做到正确是一项复杂的工作。

    几个很好的例子是:

    【讨论】:

    • 是的,我一直在看 nerddinner,但我发现他们是如何做到的令人困惑。他们也在使用订单版本,似乎有些事情发生了变化。我会看看模板。如何使用模板。我安装了它,但我不确定如何实际使用它。
    • 模板看起来就像我什至无法创建数据库一样令人困惑。它一直告诉我数据库不存在。我试图在 app.config 中创建一个 shell 数据库,但也没有用。
    • 嗯...在访问 setup.aspx 之前尝试让每个人都完全访问您的 local App_Data 目录。这有助于我有时创建数据库。然后当然要弄清楚该目录中保留多少访问权限。
    猜你喜欢
    • 2018-05-02
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    相关资源
    最近更新 更多