Office js Outlook加载项API不会在Firefox/Chrome上始终如一地触发ItemChange事件

Office js Outlook加载项API不会在Firefox/Chrome上始终如一地触发ItemChange事件,office-js,outlook-web-addins,Office Js,Outlook Web Addins,我们在清单中为Outlook加载项启用了任务窗格锁定,并注意到,除了Windows Outlook 2016客户端之外,Outlook Office online中现在还提供了锁定支持 然而,在切换邮件项目时,似乎并没有始终如一地触发该事件(当它被触发时,我无法辨别任何押韵或原因) 我们正在使用收听此事件。这是一个bug吗?我也遇到了同样的问题。我想重新注册事件处理程序,结果成功了 这是我正在使用的代码 Office.onReady(function() { //console.log(

我们在清单中为Outlook加载项启用了任务窗格锁定,并注意到,除了Windows Outlook 2016客户端之外,Outlook Office online中现在还提供了锁定支持

然而,在切换邮件项目时,似乎并没有始终如一地触发该事件(当它被触发时,我无法辨别任何押韵或原因)


我们正在使用收听此事件。这是一个bug吗?

我也遇到了同样的问题。我想重新注册事件处理程序,结果成功了

这是我正在使用的代码

Office.onReady(function() {
    //console.log('In Office.onReady');

    if(!Office.context.mailbox) {
        console.log('Run inside Outlook to be able to use it.');
        return;
    }
    console.log('Running in Office Add-in');

    // Set up ItemChanged event
    Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, selectedMailItemChanged);
    console.log('Item Change event registered.');

    doSomething(Office.context.mailbox.item);
    //console.log('Page initialized');
});

function selectedMailItemChanged(eventArgs) {
    console.log('Another email message selected');

    if(Office.context.mailbox.item != null) {
        doSomething(Office.context.mailbox.item);
    }
    else {
        console.log('No email is selected.');
        Office.context.mailbox.removeHandlerAsync(Office.EventType.ItemChanged, {handler: selectedMailItemChanged}, function(result) {
            console.log('Item Change event unregistered.');
            Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, selectedMailItemChanged);
            console.log('Item Change event re-registered.');
        });
    }
}

function doSomething(item) {
    // do something.
}

但是,在另一种情况下,当外接程序仍处于打开状态时,您可以从外接程序中导航到另一个网页,请参见。

事实证明,这种行为的一个原因(原因?)是从选择控件中进行选择。它已经在Office 16.0.13001中使用。

ItemChange会在项目实际更改时触发,但只要更改选择即可。AddHandlerAsync确实是正确的使用方法。你能描述一下当你期望触发itemchanged事件时你在做什么吗?根据标题,这只发生在OWA中,而不是桌面客户端?还是两者都有?请注意,OWA在阅读窗格中有对话,而桌面客户端没有。(您是否仅在两个位置之一切换邮件时才看到事件?@OutlookAdd insTeam MSFT我们试图通过鼠标单击(更改当前选定的邮件)在邮件列表中选择一个新邮件项目。这种行为仅在OWA(Firefox/Chrome)中观察到。很抱歉,我没有得到你评论中的最后一个问题。我无法在OWA中得到这方面的回复。具体来说,您正在单击邮件列表中的另一封已读邮件,阅读窗格中的项目正在更改,但没有向您的加载项触发项目更改事件?但在Outlook 2016桌面客户端中,它工作正常吗?(请注意,如果编写“新邮件”,则不会触发事件,因为读取/编写场景在清单中单独处理)。你能用一个非常简单的外接程序重新编程吗?它只注册外接程序,不做任何其他事情?i、 e只调用:Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged,函数(结果){console.log(“接收到的项目更改”);});