Office.js ContextMenu, что было нажато? - PullRequest
0 голосов
/ 23 сентября 2019

Я делаю надстройку Word с использованием office.js и успешно зарегистрировал элемент ContextMenu и функцию обратного вызова.

Функция получает Office.AddinCommands.Event параметр, содержащий source.id из моего manifest.xml.Никакого контекста.

Я ожидал бы, что контекстное меню будет иметь доступ к контексту, из которого оно было вызвано.

Кто-нибудь знает, как получить информацию о том, что было нажато?

manifest.xml

<ExtensionPoint xsi:type="ContextMenu">
    <OfficeMenu id="ContextMenuText">
        <Control xsi:type="Button" id="Button1Id1">
            <Label resid="ContextMenuItem.Label" />
            <Supertip>
                <Title resid="ContextMenuItem.Label"/>
                <Description resid="ContextMenuItem.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="ExecuteFunction">
                <FunctionName>doStuff</FunctionName>
            </Action>
        </Control>
    </OfficeMenu>
</ExtensionPoint>

функция обратного вызова

function doStuff(event) {
   console.log("Got invoked!");
   console.log(event);
   event.completed();
}

1 Ответ

0 голосов
/ 24 сентября 2019

Нет объекта контекста, который предоставил бы информацию о том, где документ был щелкнут правой кнопкой мыши.Вы можете использовать Document.getSelection(), чтобы получить диапазон, по которому щелкнули правой кнопкой мыши.Оттуда вы можете использовать свойства объекта Range, который возвращается для ориентации вашего кода.

...