【问题标题】:How to determine the ID of the invoking button or open taskpane from inside office-JS如何确定调用按钮的 ID 或从 office-JS 内部打开任务窗格
【发布时间】:2017-04-10 15:54:15
【问题描述】:

我有一个 Excel javascript 插件,可以在功能区上创建多个按钮,每个按钮都会调用一个任务窗格。这些按钮需要执行的 javascript 代码是相同的,除了调用堆栈中的一行很深,它决定了我们在填充任务窗格时将下一个请求发送到的服务器地址。我想知道最简单的方法是告诉用户按下哪个按钮来到达我们所在的位置;如果可能的话,我宁愿避免为第二个按钮向客户端发送不同的 javascript。

在插件的清单中,我为按钮和任务窗格设置了一个唯一 ID - 有没有办法从 javascript 访问其中任何一个?我找到了 Office.context.ui,但它似乎不包含有关当前 UI 上下文的任何信息。

【问题讨论】:

  • 澄清一下;您有两个按钮(例如 B1 和 B2)。 B1 和 B2 在任务窗格中打开相同的 URI?
  • 我希望它们都打开相同的,因为我需要下推的代码很大,否则只会相差一行。如果除了让它们指向不同的 URL 之外别无他法,我也可以这样做。

标签: javascript office-js excel-addins


【解决方案1】:

在点击事件期间按钮的 ID 不会出现。然而,这是一个有趣的建议。我建议您添加到办公室Developers UserVoice

当我遇到类似的用例时,我们通常通过创建两个不同的 URI 来处理它。每个按钮只是指向它自己的 URI。但是,当该 URI 启动时,它会立即重定向到主应用程序页面。为了维护执行路径,我们包含一个查询参数,告诉应用程序主页面它来自哪里。您可以使用相同的模型来传递在功能区中按下了哪个按钮。

如果你走这条路,请确保你的初始 URI 包含它自己的 Office.initialize 实现。您可以使用此方法执行到主页的导航。如果没有它,您可能会遇到问题,因为 Office 假定每个加载项页面都实现了 Office.initialize。

【讨论】:

    猜你喜欢
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多