我正在开发 Outlook VSTO 加载项,我在其中使用“System.Windows.Forms.WebBrowser”来显示加载项功能。
一个功能要求是与云帐户(如 OneDrive、Dropbox)建立 oauth 连接。当用户单击按钮(例如“连接 OneDrive”)时,我们使用 oauth-url 在 JavaScript 代码 (ES6) 中调用“window.open”。
我面临的问题是,如果用户未输入任何凭据并关闭窗口,然后再次尝试连接云帐户(通过单击“连接 OneDrive”),我会遇到异常(错误:由于错误 8150002e.).
,无法完成操作我在网上找不到有关错误代码“8150002e”的任何信息。
此异常并不总是存在,但大约有 50% 的时间出现。
任何帮助将不胜感激。
我尝试过的:
每次调用 window.open 时更改 windowName 参数
具有窗口对象的全局变量。
使用_blank参数每次打开一个新窗口
5-6 次后,错误出现,5-6 次后错误消失,授权窗口开始像以前一样出现。
编辑:在 https://github.com/vinay-x/SampleAddin
问题相关代码:
示例应用程序有一个 windows 窗体,其中包含一个 webBrowser 控件,该控件导航到一个包含按钮的简单 HTML 页面。
不得不处理一些 IE11 的东西,我遇到了这个问题。我发现解决此问题的解决方案是在调用 window.open 之前将 window 变量设置为 null。
所以对于你的例子,你有这个:
function myFunction() {
window.open("https://www.w3schools.com", 'BackfliptOAuth', "width=800,height=800,center=true,useContentSize=true");
}
我修改成这样:
var win = null;
function myFunction() {
win = null;
win = window.open("https://www.w3schools.com", 'BackfliptOAuth', "width=800,height=800,center=true,useContentSize=true");
}