问题标签 [office-js-helpers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何使用 Word API/Office JS 实现单词在拼写错误期间显示的红色曲线?
我正在使用 ScriptLab 开发一个单词插件。我现在的目标是用红色曲线在一个词(在某种程度上,我知道这个词)下划线。这是当您拼写错误或出错时单词所显示的内容。我能够做到这一点。(虽然我只希望下划线是红色的,但字体也会变红)。但问题是当我将文档转换为 PDF 时,下划线不会消失。所以,我意识到这不是我想要的。当我将文档转换为 PDF 时,我希望删除红色下划线(在 Word 中自动发生的事情)。
我可以手动执行此操作。但我认为会有太多的极端情况和错误。因此,最好使用 Word API 的功能(如果可用)。目前,我找不到任何答案。
excel - Edge 浏览器在获取令牌后阻止 Office-Helpers-Js 库关闭身份验证对话框
在 Excel 加载项中,我要求用户使用 Office 帮助程序库针对 Azure AD 应用程序对自己进行身份验证。加载项启动时,我调用 Authenticator 实例的“身份验证”功能,它打开登录对话框并完成登录过程没有问题,问题是当重定向返回令牌时,身份验证器没有从 Href 检索信息并关闭对话框,而不是卡在空白页面窗口中。
我正在使用版本:来自 CDN 的 Office Helpers 1.0.2
这是代码:
该问题发生在 Office 的最新更新(截至 18/08/2019)之后,微软似乎正式放弃 IE 并考虑使用 Edge,在 IE 上没有问题并且身份验证工作完美,但现在在 Edge 上,如前所述,它失败了。
reactjs - Outlook React Addin 中的空白身份验证对话框窗口
我曾尝试使用Dialog API和office-js-helpers在我的 Outlook Addin React 应用程序中对用户进行身份验证,并且它们都为身份验证创建了弹出窗口,但它们都是空白屏幕。两种方法都返回以下错误
未声明纯文本文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。文件的字符编码需要在传输协议中声明或文件需要使用字节顺序标记作为编码签名。
起初我认为这可能是因为我的 Auth 域没有在我的清单中列出AppDomain
,但我已经添加了它并重新安装了我的加载项,但没有成功。
这是我尝试过的两个版本:
和
我并不特别关心我使用哪种方法,我只需要其中一种方法即可。
office-js - Excel-addin-Office API Javascript - office.js 警告和 telemetryproxy.html 未找到
我试图在 chrome 浏览器上加载我的 excel-addin。
我添加了 office.js api,我在控制台中收到警告和错误作为警告:警告:Office.js 在 Office 客户端之外加载错误:加载资源失败:服务器响应状态为 404(未找到)遥测代理.html
我检查了网络选项卡和错误:https: //telemetryservice.firstpartyapps.oaspapps.com/telemetryservice/telemetryproxy.html 404-找不到文件或目录。
有人可以帮我解决吗?
谢谢
excel - 如何使用 office-js-helpers 在 .NET Core 2.2 上使用 IdentityServer4 对 Excel Web 插件进行身份验证
我正在尝试使用 Visual Studio 2019 中的 office-js-helpers 在 .NET Core 2.2 上使用 IdentityServer4 对 Excel Web 加载项(自定义功能)进行身份验证
- 为我自己的 IdentityServer 添加一个端点,我很确定我需要设置一个 clientSecret?但我在端点管理器中找不到有关此的信息。 https://github.com/OfficeDev/office-js-helpers/blob/master/src/authentication/endpoint.manager.ts
使用自定义端点没有成功,我决定尝试使用预设端点的作者代码。假设工作演示位于此处:https ://github.com/OfficeDev/office-js-helpers/tree/master/demo
- 在 c/p'ing 演示后:
- 单击 microsoft login 会打开正确提示输入用户名 + 密码的身份验证对话框,
- 它验证正常(access_token 显示在 browserurl 中)-但永远不会到达 js 中的回调 then() 以便我可以获得令牌。
有没有人使用office-js-helpers从任何办公室添加oauth2正常工作?(或任何其他图书馆)。
任何帮助表示赞赏。
主要目标是使用我设置的身份服务器进行身份验证。但是现在我只需要使用 office-js-helpers 的作者定义的预设端点的一些工作解决方案。
这是我的代码:
office-js - 有没有办法使用 Outlook 插件/office-js 捕获约会丢弃事件
Outlook 加载项提供了一种处理电子邮件或阻止电子邮件用户使用某些操作的方法
是否有类似的方法可以通过 office-js 捕获丢弃点击事件。?
如果用户决定放弃约会,我需要调用 3rd 方 api。
office-js - 使用任务窗格应用程序中的 office.js 将数据写入 excel 时出现“当前上下文中的 API 调用无效”错误
实际问题:
从 office.js 获取错误消息“当前上下文中的 API 调用无效”(API 方法:Office.context.document.bindings.addFromNamedItemAsync)
问题场景:
1) 如果正在通过 Office.js 对 Excel 中的名称范围执行读/写操作,并且用户尝试手动编辑同一 Excel 中的任何工作表(并行),则 Office.js 操作失败并出现错误“无效当前上下文中的 API 调用”。
2) 如果正在通过 Office.js 对 Excel 中的名称范围执行读/写操作,并且用户试图手动编辑另一个 Excel 工作表中的任何工作表(并行),则 Office.js 操作失败并出现错误“当前上下文中的 API 调用无效”。
来自 Office JS 的错误消息:当前上下文中的 API 调用无效。
javascript - 当 webapp 作为 Outlook 加载项加载时有条件地加载 Office.js
我目前正在构建一个 Web 应用程序,它既可以作为独立版本在浏览器中加载,也可以作为 Outlook 加载项加载。为了利用 Outlook 环境,我将 office.js 加载到我的 Web 应用程序的布局中。我想检查 web 应用程序是在 Outlook 中加载(作为加载项)还是作为浏览器中的 web 应用程序加载,以便我可以有条件地隐藏需要该应用程序在 Outlook 中运行的功能。
根据关于该主题的现有问题(在此处找到:检查 Office.js 是否在 Office 客户端之外加载)office-js-helpers 通过使用
这将根据上下文返回“outlook”或未定义,这正是我正在寻找的(需要注意的是,您首先加载 office.js,然后再加载另一个脚本以检查是否确实需要 office.js)。不幸的是,我必须支持旧版本的 Outlook,即使在 Outlook 中加载上述解决方案也会返回 undefined(比最新版本晚 2 年 - 看不到任何变化)。
有趣的是,office.js 本身(或者更确切地说是它的依赖项,o15apptofilemappingtable.js,https: //appsforoffice.microsoft.com/lib/1.1/hosted/o15apptofilemappingtable.js )已经在缩小的 JavaScript 中有一行能够找出 office.js 在 Outlook 环境之外加载并打印警告:
这正是我正在寻找的东西,但我似乎无法理解如何自己实施这样的检查。我知道您可以通过使用 Office.onReady() 检查 Office.js 是否已完全加载(如此处所示:https ://docs.microsoft.com/en-us/office/dev/add-ins /develop/understanding-the-javascript-api-for-office),但我想要的是在加载 office.js 之前检查它是否真的有必要(当应用程序在 Outlook 环境之外运行时不是这样) )。
是否有人遇到过类似的情况并可能分享他的见解?
ms-word - 将 VSTO 转换为 Web 插件
有什么办法可以插入另一个文件吗?在 VSTO 中,有一个使用 InsertFile 插入文档的选项。在这里寻找类似的东西。
office-js - Outlook REST API 在移动设备和桌面设备上返回不同的 itemId
从文档中,当检索 时Office.context.mailbox.item.itemId
,如果您是从移动设备执行此操作(即Office.context.mailbox.diagnostics.hostname
isOutlookIOS
或OutlookAndroid
),则itemId
将已经正确格式化为 REST。否则,您必须convertToRestId
在主机名是Outlook
或时使用OutlookWebApp
。
但是,当itemId
在移动设备上请求并将其与itemId
我在运行后在桌面上收到的进行比较时convertToRestId
,结果非常不同:
移动:IPeZKQ2zaYPXtQLOiL3jyYjYeDHZJM-WJk0FMdjqAKiAtTPcoynRaoUIjNPeFAobOzn4
桌面: WPbg0EnRleDtTlp7USABKGhveIZFyW6lxtopV1GvQAVeDWQVnkWn6IlPCPUtTEY45yUUgALcD8wFTIJTO43R2M0t1KZVg25jSjW2sxmvSSBQxHBImcjEuPkWiZs7M48qpwCT0judVYukJvDKEs=
除了连字符和等号外,我用乱码替换了实际的 ID;它们确实具有相同的长度:移动设备上的长度为 68,桌面上的长度为 152。
桌面应用程序和 Web 应用程序的结果相同,移动设备(Android 和 iOS)上的结果相同。
来自移动设备的 ID 看起来与从桌面检索到的 ID 完全不同。这是故意的吗?直到几个月前,移动 ID 的格式都不同。有没有办法将移动版本更改为桌面看到的 REST ID?