0

我有使用 MS 的 Facebook 库的 ac# 客户端应用程序,它已经运行了一段时间(这个特殊的表单最后一次更改是在 5 月 6 日,并且在我上周的最后一个测试周期中运行)。这是在具有嵌入式 Web 浏览器的信息亭应用程序(幸运的是仍在开发中)中,因此用户可以对我们的应用程序进行身份验证和授权。今天,当您单击授权页面上的任一按钮时,我开始收到脚本错误弹出窗口。

所以我去登录页面,用户认证,一切都很好,然后进入授权页面“想代表你私下发帖”,仍然很好,但是,当你点击确定或跳过时,弹出一个弹出-上面说

An error has occurred in the script on this page
Line: 5
Character: 878
Error: "Access is denied."
URL: https://static.xx.fbcdn.net/rsrc.php/v2/yG/r/q0zNT1kK_7g.js.  

现在弹出窗口有正常的“你想继续在这个页面上运行脚本吗”是/否选项,但同样,它被卡住了。点击yes or no,没关系,弹窗不断,我要手动kill掉进程。

我没有更改我的代码,但可能在查看“重大更改”列表并启用它时更改了一些应用程序设置,但如果是这样,我不确定我可以做些什么来打破这个。我已经回过头来玩了一些设置,但没有明显的效果。

这个问题的另一面也令人沮丧的是,由于我从未真正完成过 oauth 过程,因此我从未获得我的访问令牌。但是,有些东西是 cookie 的,它认为用户仍然登录。由于我没有访问令牌,我无法将它们注销,所以现在每次我去登录页面时,它都会直接过去授权页面。显然,如果我能克服脚本错误,我就可以获得我的令牌并将用户注销。

任何的意见都将会有帮助。

编辑:我将 URL 转移到 Chrome 上,它运行良好,所以我抓住了有问题的 .js 来查找有问题的代码。问题是“window.resizeBy(w,x)”,一些快速搜索看起来像 IE 可能故意阻止它(至少旧版本,当我在 IE 10 真正的浏览器中尝试它时它也有效)。有趣的是,在 Chrome 中(但不是在 IE 中),当它第一次点击授权屏幕时,我收到以下消息:

您在大型浏览器窗口或选项卡中使用“弹出式”显示类型。为了获得更好的用户体验,请使用我们的 JavaScript SDK 显示此对话框,而无需指定显式显示类型。SDK 将为每个环境选择最佳显示类型。或者,如果您有阻止您使用 SDK 的特殊要求,请在 window.open() 调用上设置高度和宽度以正确调整此对话框的大小。此消息仅对您的应用程序的开发人员可见。

这让我想知道:如果我能弄清楚如何在嵌入式浏览器中获取 window.open,并且如果我可以按照建议明确设置大小,那么它是否会跳过导致问题的调整大小。进行更多研究。

4

1 回答 1

1

好的,所以花在 Chrome 上的时间(像往常一样)比任何其他浏览器都更有价值。由于这是使用 MS 的 Facebook 客户端,而不是 JS SDK,因此没有简单的方法可以访问 window.open。Chrome 中的消息给出的另一个关键是我们正在使用“popup”类型。将其更改为键入“页面”,并且不再出现脚本错误。授权显示在他们自己的 JS 弹出窗口中,这应该没问题。

于 2013-07-14T11:10:21.793 回答