【问题标题】:Keep "Connect to QuickBooks" button from popping a new window防止“连接到 QuickBooks”按钮弹出新窗口
【发布时间】:2014-02-11 21:33:55
【问题描述】:

在我的 Web 应用程序中实现“连接到 QuickBooks”按钮时,我发现它会弹出一个新窗口,而不是仅仅被重定向,这在该应用程序的长期运行中是非常不希望的。有什么办法可以防止按钮弹出一个新窗口并在同一个选项卡中重定向?或者这会违背因纽特人的Do's and Don'ts(1. 不要修改此按钮的外观或行为。2. 不要修改实现此按钮的代码。)

我假设弹出一个新窗口的命令在 Intuit 的 JavaScript anywhere() 函数中,但我不知道是否有办法阻止它弹出一个新窗口并让它使用相同的选项卡,无需更改代码。

或者,如果真的没有任何东西,是否可以自动关闭弹出窗口并恢复对先前使用的选项卡的控制?我试图查找此解决方案,但没有找到任何真正的解决方案,或者至少没有任何对我有用的东西。

感谢您的帮助。

编辑: 我想出了如何关闭窗口......现在只需处理刷新它返回的页面即可。我还没有完全弄清楚它是如何工作的,但我最终使用了:

<script type="text/javascript">
    try {
        var parentlocation = window.parent.opener.location.hostname;
        var currentlocation = window.location.hostname;
        if (parentlocation != currentlocation) {
            window.location = "/default.aspx";
        }
        else {
            window.opener.location.href = window.opener.location.href;
            window.close();
        }
    }
    catch (e) {
        window.location = "/default.aspx";
    }
</script>

如果有人不介意解释那个很棒的代码,但没有人必须这样做。我现在不能,所以我以后会自己做。

【问题讨论】:

    标签: asp.net vb.net webforms intuit-partner-platform quickbooks-online


    【解决方案1】:

    我发现它弹出一个新窗口而不是仅仅被重定向,

    是的,这就是 Intuit 想要做的。

    有什么方法可以防止按钮弹出一个新窗口而只是 在同一个标​​签中重定向?

    不。

    尝试这样做是让 Intuit 禁止您的应用程序/将其从 AppCenter 中删除的好方法。

    或者,如果真的没有任何东西,是否可以关闭 自动弹出窗口并恢复之前的控制 用过标签吗?

    当然。事实上,如果你想在 AppCenter 上发布,你就必须这样做。

    简单的 Javascript - window.close();

    请记住,此窗口只需要打开一次,然后再也不会。这不会给您的用户带来巨大的不便,因为他们在使用您的应用程序的整个历史中只需要这样做一次。

    【讨论】:

    • 好吧,我不知道这是否会违背他们的意愿,这就是我问的原因。但感谢您澄清这一点。好吧……我给 Intuit 作为回调 URL 的页面也是包含window.close() 的页面吗? (JavaScript 新手。)而且我知道它只需要在有人授权时发生一次或每次发生,但这让我很烦恼哈哈。但感谢基思,你帮了大忙。
    • 另外,关闭窗口后,如何将下面的页面(弹出窗口替换的页面)重定向到正确的页面?
    • 刷新父窗口:window.opener.location.reload(false);应该有一个 URL,您的用户在连接后会被跳转到,这就是所有 Javascript 需要去的地方。
    • 再次感谢基思!
    猜你喜欢
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2023-03-05
    • 2012-06-07
    相关资源
    最近更新 更多