为啥我的侧载 Excel Javascript 加载项在外部浏览器中打开,而不是在任务窗格中打开?

Posted

技术标签:

【中文标题】为啥我的侧载 Excel Javascript 加载项在外部浏览器中打开,而不是在任务窗格中打开?【英文标题】:Why does my side-loaded Excel Javascript add-in open in the external browser, not the task pane?为什么我的侧载 Excel Javascript 加载项在外部浏览器中打开,而不是在任务窗格中打开? 【发布时间】:2020-10-24 11:11:32 【问题描述】:

ETA:注意:我刚刚注意到,外部浏览器打开 taskpane.html 之前,某些进程要求在我的本地驱动器上保存该文件。显然,上周我太慌张了,没有注意到这一点。

我正在为 Excel 开发一个 javascript(实际上是 Typescript)api 插件。它似乎在我的本地机器上正常工作。当我将源文件上传到服务器并侧载清单时,打开任务窗格的新按钮会出现在功能区上,但是当我按下按钮时,html 文件会在外部浏览器中打开,而不是在任务窗格中。

重现步骤(在我的系统上):

    按照here 的描述设置开发环境。 (简而言之:安装 Node.js、npm、yeoman 和 Visual Studio Code。) 如here 所述,使用 yeoman 生成示例加载项。 (简而言之:使用命令“yo office”,选择Office Add-in Task Pane项目,脚本类型Typescript,Name it Anything,支持Excel。) 按照here 的描述发布此加载项。 (简而言之:运行“npm run build”,将生成的 dist 文件夹上传到服务器,编辑清单将 localhost:3000 替换为服务器的 URL) 如here 所述,侧载加载项。 尝试运行加载项并查看在外部浏览器中打开的 taskpane.html 文件。

预计到达时间:

这是我目前正在使用的清单。 (除了“MyCompanyName”不是 URL)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
  <Id>27a7b548-9df8-4f2c-8554-0f4e9ebe4d6a</Id>
  <Version>1.0.0.0</Version>
  <ProviderName>Contoso</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="SIPmath"/>
  <Description DefaultValue="A template to get started."/>
  <IconUrl DefaultValue="https://MyCompanyName.squarespace.com/s/icon-32.png"/>
  <HighResolutionIconUrl DefaultValue="https://MyCompanyName.squarespace.com/s/icon-80.png"/>
  <SupportUrl DefaultValue="https://www.contoso.com/help"/>
  <AppDomains>
    <AppDomain>contoso.com</AppDomain>
  </AppDomains>
  <Hosts>
    <Host Name="Workbook"/>
  </Hosts>
  <DefaultSettings>
    <SourceLocation DefaultValue="https://MyCompanyName.squarespace.com/s/taskpane.html"/>
  </DefaultSettings>
  <Permissions>ReadWriteDocument</Permissions>
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Hosts>
      <Host xsi:type="Workbook">
        <DesktopFormFactor>
          <GetStarted>
            <Title resid="GetStarted.Title"/>
            <Description resid="GetStarted.Description"/>
            <LearnMoreUrl resid="GetStarted.LearnMoreUrl"/>
          </GetStarted>
          <FunctionFile resid="Commands.Url"/>
          <ExtensionPoint xsi:type="PrimaryCommandSurface">
            <OfficeTab id="TabHome">
              <Group id="CommandsGroup">
                <Label resid="CommandsGroup.Label"/>
                <Icon>
                  <bt:Image size="16" resid="Icon.16x16"/>
                  <bt:Image size="32" resid="Icon.32x32"/>
                  <bt:Image size="80" resid="Icon.80x80"/>
                </Icon>
                <Control xsi:type="Button" id="TaskpaneButton">
                  <Label resid="TaskpaneButton.Label"/>
                  <Supertip>
                    <Title resid="TaskpaneButton.Label"/>
                    <Description resid="TaskpaneButton.Tooltip"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.16x16"/>
                    <bt:Image size="32" resid="Icon.32x32"/>
                    <bt:Image size="80" resid="Icon.80x80"/>
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <TaskpaneId>ButtonId1</TaskpaneId>
                    <SourceLocation resid="Taskpane.Url"/>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="Icon.16x16" DefaultValue="https://MyCompanyName.squarespace.com/s/icon-16.png"/>
        <bt:Image id="Icon.32x32" DefaultValue="https://MyCompanyName.squarespace.com/s/icon-32.png"/>
        <bt:Image id="Icon.80x80" DefaultValue="https://MyCompanyName.squarespace.com/s/icon-80.png"/>
      </bt:Images>
      <bt:Urls>
        <bt:Url id="GetStarted.LearnMoreUrl" DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812"/>
        <bt:Url id="Commands.Url" DefaultValue="https://MyCompanyName.squarespace.com/s/commands.html"/>
        <bt:Url id="Taskpane.Url" DefaultValue="https://MyCompanyName.squarespace.com/s/taskpane.html"/>
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="GetStarted.Title" DefaultValue="Get started with your sample add-in!"/>
        <bt:String id="CommandsGroup.Label" DefaultValue="Commands Group"/>
        <bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="GetStarted.Description" DefaultValue="Your sample add-in loaded succesfully. Go to the HOME tab and click the 'Show Taskpane' button to get started."/>
        <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Click to Show a Taskpane"/>
      </bt:LongStrings>
    </Resources>
  </VersionOverrides>
</OfficeApp>

【问题讨论】:

你能分享你的清单吗(你可以编辑你不想显示的部分) 【参考方案1】:

原来平方空间是问题所在。我将加载项上传到了不同的 URL,它可以工作......好吧,不是“很好”,因为它仍然存在错误,但至少它可以工作!

【讨论】:

以上是关于为啥我的侧载 Excel Javascript 加载项在外部浏览器中打开,而不是在任务窗格中打开?的主要内容,如果未能解决你的问题,请参考以下文章

ruby jsonapi_suite内存关联的侧载

如何在包含 div 元素的侧菜单之外的单击事件上关闭侧菜单?

为不在应用商店中的 iOS 应用使用推送通知

iphone 6s plus不能侧载

SQL Server表名为啥要加方括号?

excel在一列前加相同的文字为啥前一列的文字会被覆盖