为啥我的侧载 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 加载项在外部浏览器中打开,而不是在任务窗格中打开?的主要内容,如果未能解决你的问题,请参考以下文章