Ms word 当Word加载项在我自己的设置中运行时,如何诊断验证失败?

Ms word 当Word加载项在我自己的设置中运行时,如何诊断验证失败?,ms-word,office-js,Ms Word,Office Js,我正在开发一个MS Word插件。我已经在Windows和Mac上测试过了,对我来说效果很好。Microsoft要求自己对加载项进行验证,以确保它们正常工作,而我的加载项对它们失败,即使它对我使用的Windows和Word版本相同 我和微软验证团队通了一个电话,他们唯一的建议是我发布一个关于堆栈溢出的问题,现在开始 这是适用于我的Windows和Word版本,但无法用于MS验证团队: Windows 10 Pro操作系统版本18362.295 Word 2016(特别是1908版) 为了调试

我正在开发一个MS Word插件。我已经在Windows和Mac上测试过了,对我来说效果很好。Microsoft要求自己对加载项进行验证,以确保它们正常工作,而我的加载项对它们失败,即使它对我使用的Windows和Word版本相同

我和微软验证团队通了一个电话,他们唯一的建议是我发布一个关于堆栈溢出的问题,现在开始

这是适用于我的Windows和Word版本,但无法用于MS验证团队:

  • Windows 10 Pro操作系统版本18362.295
  • Word 2016(特别是1908版)
为了调试,我向Microsoft提交了一个非常简单的加载项。这个简单的外接程序只有一个按钮,可以在用户的默认浏览器中打开网页

这是舱单的相关部分:

            <Control xsi:type="Button" id="PB.Home.Button">
              <Label resid="PB.Home.Button.Label"/>
              <Supertip>
                <Title resid="PB.Home.Button.Title"/>
                <Description resid="PB.Home.Button.Desc"/>
              </Supertip>
              <Icon> ... </Icon>
              <Action xsi:type="ExecuteFunction">
                <FunctionName>navigateToWebPage</FunctionName>
              </Action>
            </Control>
这是
FunctionFile.js的全部内容:

(function () {
  Office.initialize = function (reason) {};
})();

function navigateToWebPage(event) {
  window.open('https://www.example.com', '_blank');
  event.completed();
}
在我的计算机上,单击按钮时,浏览器选项卡将与网页一起打开,但对于MS验证团队,此消息将显示在Word窗口底部的工具栏中

但没有其他事情发生

“专利机器人GCP正在处理您的考官统计数据”消息是由Word生成的,而不是由我的加载项生成的。“Patent Bots GCP”是外接程序的名称,“审查员统计信息”是按钮标签(清单中的短字符串之一)

对于如何找出Microsoft验证团队的失败之处,有什么建议吗?除了我在这里介绍的内容外,他们无法提供有关错误的任何详细信息

我希望微软的工程师能看到这一点,并能提供帮助

=====


可能是弹出窗口阻止程序的问题?请参见:

继Ragavan的评论之后,我在IE11上搜索了
window.open()
(IE11是Windows 10上MS Word中使用的浏览器)的意外行为

我发现了,注意到了

在具有默认设置的Windows 10上的IE中,如果执行 window.open()从我的 本地计算机或本地网络上的服务器,我得到空值

该问题进一步指出:

有趣的是,如果我为Intranet启用“启用保护模式” 区域(以便在Intranet区域和 互联网区域),然后问题就消失了

我怀疑这就是为什么我的外接程序可以在我的Windows 10计算机上工作,而不能在验证团队的Windows 10虚拟机上工作的原因

不幸的是,答案中提出的解决方案(
w=window.open(“”)
后跟
w.location=url
)在外接程序这个词中不起作用


虽然这并不能解决我的问题,但希望它能找到一个解决方案……

根据Ragavan的评论,我在IE11上搜索了
window.open()
的意外行为(IE11是Windows 10上MS Word中使用的浏览器)

我发现了,注意到了

在具有默认设置的Windows 10上的IE中,如果执行 window.open()从我的 本地计算机或本地网络上的服务器,我得到空值

该问题进一步指出:

有趣的是,如果我为Intranet启用“启用保护模式” 区域(以便在Intranet区域和 互联网区域),然后问题就消失了

我怀疑这就是为什么我的外接程序可以在我的Windows 10计算机上工作,而不能在验证团队的Windows 10虚拟机上工作的原因

不幸的是,答案中提出的解决方案(
w=window.open(“”)
后跟
w.location=url
)在外接程序这个词中不起作用


虽然这并不能解决我的问题,但希望它能找到解决方案……

@gaefan。如果将来有人会遇到同样的问题,我也会加上我的答案

如果任何人试图使用JS window.open从外接程序中打开外部站点,则最终将出现Microsoft预期的
对象
aka验证失败错误。它取决于各种因素,如Windows 10构建版本、Office版本和

因此,要在应用程序源中成功发布外接程序,请执行以下操作:

注意:此方法是一种变通方法。但在不久的将来,如果新的边缘铬版本发布。将更改外接程序使用的浏览器。这样就可以消除解决方法。

  • 如果要从外接程序打开任何外部站点,请使用任务窗格
  • 外接程序方法
  • 重新编译
    任务窗格
    加载项的原因是您可以在HTML中使用
    锚定标记
    ,如下所示

        <a
        href="https://yourcompany.com/"
        class="button-config"
        target="_blank"
        (click)="performOperation()"
        >Sign up
        </a>
    
    
    
  • 单击事件的原因是触发任何
    分析功能
    触发日志
    添加自定义逻辑

  • 这肯定会打开外部站点,而不会更改浏览器上的任何设置

  • 如果您想继续使用基于
    命令的加载项
    尝试添加新的
    操作或控制按钮
    ,通过锚定标记打开外部站点


  • 希望它能帮助一些人。谢谢你。如果将来有人会遇到同样的问题,我也会加上我的答案

    如果任何人试图使用JS window.open从外接程序中打开外部站点,则最终将出现Microsoft预期的
    对象
    aka验证失败错误。它取决于各种因素,如Windows 10构建版本、Office版本和

    因此,要在应用程序源中成功发布外接程序,请执行以下操作:

    注意:此方法是一种变通方法。但在不久的将来,如果新的边缘铬版本发布。将更改外接程序使用的浏览器。这样就可以消除解决方法。

  • 如果要打开任何ex,请使用任务窗格
  • 加载项方法
        <a
        href="https://yourcompany.com/"
        class="button-config"
        target="_blank"
        (click)="performOperation()"
        >Sign up
        </a>