2017-07-25 3 views
0

Je crée une perspective macro complémentaire avec l'API Javascript, et le ruban a un bouton défini comme ci-dessous ...Impossible d'ouvrir un lien à partir d'Outlook ruban est javascript API sans être une fenêtre pop-up

<Item id="msgCheckHelp"> 
    <Label resid="checkHelpLabel"/> 
    <Supertip> 
    <Title resid="checkHelpTitle"/> 
    <Description resid="checkHelpDesc"/> 
    </Supertip> 
    <Action xsi:type="ExecuteFunction"> 
    <FunctionName>checkHelp</FunctionName> 
    </Action> 
</Item> 

puis, la fonction d'aide à cocher est tel que défini ci-dessous ...

function checkHelp (event) { 
    window.open("help", "_blank"); 
    event.completed(); 
} 

le problème est, ce n'est pas reconnu comme un événement utilisateur. J'ai essayé de regarder displayDialogAsync comme une alternative à window.open, mais il ne se charge que comme une popup.

Répondre

0

Si vous souhaitez afficher votre page d'aide dans l'application, vous devrez spécifier dans votre manifeste type différent Action que suivre ...

<Action xsi:type="ShowTaskpane"> 
    <SourceLocation resid="appHelp" /> 
</Action> 

Et à l'intérieur Resources section spécifier l'URL de la ressource Id comme suivez ...

<bt:Urls> 
    <bt:Url id="appHelp" DefaultValue="https://domain.../Help.html"/> 
</bt:Urls> 

Maintenant, en cliquant sur le bouton du ruban, la tâche de douleur s'ouvrira et affichera votre ressource d'aide.

S'il vous plaît noter: Action « ExecuteFunction » qui fournit le crochet jusqu'à FunctionFile element conçu pour exécuter des fonctions sans interaction de l'interface utilisateur; vous ne pouvez pas l'utiliser avec la fonction window.open().

+0

Afficher le tableau des tâches dans l'iframe du complément, pas comme un nouvel onglet. –

+0

@JosephWhitley Vous n'avez pas dit où vous voulez ouvrir un nouvel onglet du navigateur. En fait, que va-t-il être dans Outlook ou sur un ordinateur de bureau? De toute façon, vous avez des options de quantité limitée et ils sont tous décrits dans la publication: 1. API Dialog; 2. volet des tâches à l'intérieur; 3. Lien sur la page de l'application. Et encore une fois "ExecuteFunction" doit être sans interface utilisateur. –