Add in 是否存在PowerPoint加载项(应用程序)的幻灯片转换事件

Add in 是否存在PowerPoint加载项(应用程序)的幻灯片转换事件,add-in,office-addins,powerpoint-2013,Add In,Office Addins,Powerpoint 2013,我正在为PowerPoint开发Office加载项。这是一个现代的“插件”的办公室商店,而不是老式的插件 是否有办法在活动幻灯片更改时收到通知 我的设想是,当幻灯片在演示文稿中更改时,我希望在外接程序代码中执行一些操作 在此阶段,我的应用程序可能是内容或任务窗格应用程序。没有直接的方法可以做到这一点。Office JS库没有PowerPoint中幻灯片转换的事件 然而,有一种黑客方法可以做到这一点,包括定期刷新web应用程序,并使用getSelectedDataAsync和强制类型的SlideR

我正在为PowerPoint开发Office加载项。这是一个现代的“插件”的办公室商店,而不是老式的插件

是否有办法在活动幻灯片更改时收到通知

我的设想是,当幻灯片在演示文稿中更改时,我希望在外接程序代码中执行一些操作


在此阶段,我的应用程序可能是内容或任务窗格应用程序。

没有直接的方法可以做到这一点。Office JS库没有PowerPoint中幻灯片转换的事件

然而,有一种黑客方法可以做到这一点,包括定期刷新web应用程序,并使用getSelectedDataAsync和强制类型的SlideRange。这将为您提供文档中的全部幻灯片,并从中可以获得当前幻灯片的索引。您可以将该索引存储在一个设置中,并检查它是否发生了更改(如果您有您的事件)

这是基本代码(每1.5秒刷新一次)


你好是否有计划为幻灯片更改事件添加回调支持?看起来马丁不是唯一一个需要这个的人)因为这是三年前的事了,这个幻灯片更改事件被添加了吗?我正在拼命寻找一个解决方案,这个本来可以解决问题的,但它实际上只在“编辑”模式下工作,一旦在“阅读”模式下,我在控制台中就会出错。幻灯片放映开始后是否有解决办法?编辑:我的错,它工作得很好,除了当你减少幻灯片控制器以尝试观看后面的调试控制台时,它在其他情况下工作得很好。很好,很高兴这个答案仍然提供了一些价值。由于PowerPoint desktop使用Internet Explorer作为内部浏览器,
getSelectedDataAsync
引发内存泄漏。有其他的解决方案吗?
//Automatically refresh
window.setInterval(function () {
//get the current slide
Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, function (r) {

      // null check
      if (!r || !r.value || !r.value.slides) {
        return;
      }

    //get current slides index
    currentSlide = r.value.slides[0].index;

    //get stored setting for current slide
    var storedSlideIndex = Office.context.document.settings.get("CurrentSlide");
    //check if current slide and stored setting are the same
    if (currentSlide != storedSlideIndex) {
        //the slide changed - do something
        //update the stored setting for current slide
        Office.context.document.settings.set("CurrentSlide", currentSlide);
        Office.context.document.settings.saveAsync(function (asyncResult) { });
    }

});

}, 1500);