Delen via


JavaScript gebruiken met Microsoft Dynamics 365

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 (online en on-premises) biedt veel kansen om JavaScript te gebruiken. Alle JavaScript gebruikt in Microsoft Dynamics 365 wordt toegevoegd door JavaScript webresources te maken. Dit onderwerp bevat informatie voor ontwikkelaars die gebruikmaken van JavaScript en bevat koppelingen naar relevante onderwerpen in de Microsoft Dynamics 365 SDK en andere bronnen.

In dit onderwerp

Gebieden waar u JavaScript in Microsoft Dynamics 365 kunt gebruiken

jQuery gebruiken

Schrijf JavaScript voor meerdere browsers

Aanbevolen methoden voor JavaScript programmering

JavaScript-fouten opsporen in Microsoft Dynamics 365

Gebieden waar u JavaScript in Microsoft Dynamics 365 kunt gebruiken

U kunt JavaScript gebruiken om bewerkingen uit te voeren in formulierscripts, opdrachten in de opdrachtbalk (lint), en webresources.

Formulierscripts

JavaScript in Microsoft Dynamics 365 wordt vaakst gebruikt om functies toe te voegen als gebeurtenishandlers voor gebeurtenissen voor formulier entiteit. Zie Code schrijven voor Microsoft Dynamics 365-formulieren voor meer informatie.

Opdrachtbalk (lint) opdrachten

Als u de Microsoft Dynamics 365 opdrachtbalk aanpast, kunt u opdrachten configureren voor besturingselementen die u toevoegt. Deze opdrachten bevatten regels die bepalen of het besturingselement wordt ingeschakeld en welke actie wordt uitgevoerd wanneer het besturingselement wordt gebruikt. Zie Opdrachten en het lint aanpassen voor meer informatie.

Webresources

Microsoft Dynamics 365 bevat een entiteit die eigendom is van een organisatie, en slaat een binaire weergave op van een bestand dat toegankelijk is met behulp van een URL. Dit bestand wordt een webresource genoemd. Er zijn een aantal verschillende typen webresources. Een webresource die een JavaScript bibliotheek voorstelt, wordt een JavaScript webresource genoemd. U kunt een webpagina (HTML) webresource gebruiken om een gebruikersinterface te bieden met JavaScript bibliotheken, net als voor bestanden op een webserver. Omdat deze bestanden deel uitmaken van Microsoft Dynamics 365, worden de gebruikers die er toegang tot hebben al geverifieerd. Daarom kunt u Microsoft Dynamics 365 webservices gebruiken zonder dat u code moet schrijven om de gebruiker te verifiëren. Zie voor meer informatie Webresources voor Microsoft Dynamics 365 en Werken met Dynamics 365-gegevens met behulp van webresources.

jQuery gebruiken

  • Gebruik jQuery met HTML-webresources
    Het is raadzaam jQuery samen met HTML-webresources te gebruiken om gebruikersinterfaces te geven omdat de engine een uitstekende cross-browserbibliotheek is.

    Met HTML-webresources controleert u de bibliotheken die aanwezig zijn en is er geen beperking voor het bewerken van de DOM. U kunt jQuery gebruiken binnen uw HTML-Webresources.

  • Vermijd het gebruik van jQuery met formulierscripts of lintopdrachten
    We adviseren niet jQuery te gebruiken in formulierscripts en lintopdrachten.

    Het grootste voordeel van jQuery, is dat cross-browsermanipulatie van de DOM gemakkelijk wordt. Dit wordt uitdrukkelijk ondersteund in formulierscripts en lintopdrachten. Beperk uw scripts om de bibliotheken Xrm.Page en Xrm.Utility te gebruiken in formulierscripts en lintopdrachten. Als u beslist de resterende mogelijkheden van jQuery te gebruiken die nuttig zijn met Microsoft Dynamics 365 en de mogelijkheid wilt opnemen om $.ajax te gebruiken, kunt u het volgende overwegen:

    • Voor de beste prestaties wordt het aangeraden om jQuery niet in de pagina te laden als u het niet nodig hebt

    • $.ajax gebruiken om aanvragen voor de Microsoft Dynamics 365-webservices uit te voeren, wordt ondersteund, maar er zijn alternatieven. Het alternatief voor het gebruik van $.ajax is het rechtstreeks gebruik van het XMLHttpRequest-object van de browsers. De jQuery $.ajax is slechts een omslag voor dit object. Als u het native XMLHttpRequest-object rechtstreeks gebruikt, hoeft u jQuery niet te laden.

    • Elke versie van jQuery die in een pagina wordt geladen, kan een andere versie zijn. Verschillende versies van jQuery hebben verschillende gedragingen en deze kunnen problemen veroorzaken als meerdere versies van jQuery op dezelfde pagina worden geladen. Er is een methode om dit te beperken, maar hiervoor moet u de jQuery-bibliotheek bewerken, evenals overige bibliotheken die afhankelijk zijn van jQuery.Meer informatie:jQuery en jQuery UI met Dynamics CRM 2011 en 2013, jQuery.noConflict()

      Notitie

      Met Update 1 voor Microsoft Dynamics CRM Online 2015 worden formulierscripts uitgevoerd in een ander bereik dan het jQuery-exemplaar dat wordt gebruikt door de toepassing. Dit betekent dat er mogelijk geen exemplaar van jQuery beschikbaar is als uw code probeert gebruik te maken van jQuery.noConflict. Als u jQuery moet gebruiken, moet u eerst vaststellen of een exemplaar van jQuery bestaat voordat u probeert gebruik te maken van jQuery.noConflict.

Schrijf JavaScript voor meerdere browsers

Aangezien u niet weet welke browser zal worden gebruikt, moet u ervoor zorgen dat alle scripts die u gebruikt in alle ondersteunde browsers werken. De meeste belangrijke verschillen tussen Internet Explorer en andere browsers, hebben te maken met HTML- en XML DOM-manipulatie. Omdat de HTML DOM-manipulatie niet wordt ondersteund, kunnen de vereiste wijzigingen om een browser te ondersteunen klein zijn wanneer de scriptlogica alleen ondersteunde acties uitvoert en de Xrm.Page API gebruikt. Gebruik het Validatiehulpmiddel voor aangepaste code om codes te identificeren die alleen werken voor Internet Explorer.

Een cross-browserbibliotheek zoals jQuery is een goede oplossing voor het ontwikkelen van webresources, maar is dit niet noodzakelijk voor lintopdrachten of formulierscripts.Meer informatie:jQuery gebruiken

Ondersteuning voor andere browsers

Aangezien Microsoft Dynamics 365 (online en on-premises)W3C normen ondersteunt, is de toepassing toegankelijk met een willekeurige moderne browser en vanaf elk platform deze normen ondersteunt.Microsoft Dynamics 365 wordt echter alleen getest met behulp van een specifieke set browsers en platforms. Zie Technet: Ondersteunde webbrowsers voor de lijst met ondersteunde platforms en browsers.

Als u een browser of browserversie gebruikt die niet wordt ondersteund en u geeft alleen de servernaam of de servernaam bij de organisatie in als URL, wordt u teruggestuurd naar de Microsoft Dynamics 365 voor telefoons pagina. De Dynamics 365 voor telefoons pagina's worden verondersteld correct te werken op de meeste browsers, zoals browsers gebruikt in mobiele apparaten, met beperkte functionaliteit.

Aanbevolen methoden voor JavaScript programmering

De volgende gedeelten beschrijven de aanbevolen methoden wanneer u JavaScript gebruikt met Microsoft Dynamics 365.

Vermijd het gebruik van niet-ondersteunde methoden

Op internet vindt u talloze voorbeelden of suggesties die het gebruik van niet-ondersteunde methoden beschrijven. Deze kunnen het gebruik omvatten van niet-gedocumenteerde interne functie voor paginabesturingselementen. Deze methodes kunnen werken, maar aangezien ze niet worden ondersteund, kunt u niet verwachten dat deze blijven werken in toekomstige versies van Microsoft Dynamics 365.

Gebruik het Validatiehulpmiddel voor aangepaste code om codes te identificeren die niet-ondersteunde methodes gebruikt.

Gebruik een cross-browserJavaScript-bibliotheek voor gebruikersinterfaces van HTML-webresources.

Een cross-browser JavaScript-bibliotheek zoals jQuery biedt vele voordelen wanneer u HTML-webresources ontwikkelt die meerdere browsers moeten ondersteunen.JavaScript-bibliotheken zoals jQuery bieden een eenvormige ontwikkelomgeving voor alle browsers die Microsoft Dynamics 365 ondersteunt. Deze capaciteiten zijn van zeer nuttig als u HTML-webresources gebruikt om gebruikersinterfaces aan te bieden.JavaScript-bibliotheken zoals jQuery bieden consistente manieren voor interactie met het Document Object Model (DOM).

Gebruik geen jQuery voor formulierscripts of opdrachten

We raden het gebruik van jQuery niet aan en ondersteunen dit niet voor pagina's in de toepassing. Dit omvat formulierscripts en lintopdrachten.Meer informatie:jQuery gebruiken.

Erken beperkingen voor Content Delivery Network (CDN) bibliotheken

Content Delivery Network (CDN) JavaScript bibliotheken bieden voor voordelen voor openbare websites. Omdat deze bibliotheken op internet worden gehost, moet u geen webresources maken met de inhoud van de bibliotheken. Voor Microsoft Dynamics 365 moet u rekening houden met de volgende aspecten voordat u een CDN JavaScript bibliotheek gebruikt.

  • Gebruikers van de Microsoft Dynamics 365 voor Microsoft Office Outlook met offlinetoegang client hebben de mogelijkheid om zonder internetverbinding te werken terwijl u offline werkt. Als u afhankelijk bent van een internetverbinding voor uw JavaScript bibliotheken, werkt uw code niet.

  • Sommige organisaties zullen internettoegang voor werknemers beperken. Tenzij ze het netwerk configureerden voor toegang tot de CDN-bibliotheeksites, werkt uw code mogelijk niet voor deze organisaties.

Het alternatief voor het gebruik van CDN-bibliotheken is het maken van een script (JavaScript) webresource met de inhoud van de bibliotheek. Omdat webresources entiteiten zijn van organisaties, worden deze gesynchroniseerd wanneer een Microsoft Dynamics 365 voor Outlook met offlinetoegang gebruiker offline gaat. Omdat deze webresources nu een onderdeel van de toepassing zijn, worden ze niet geblokkeerd als een organisatie toegang tot Internet beperkt.

Gebruik functiedetectie bij het schrijven van functies voor meerdere browsers

Zelfs als u een cross-browserbibliotheek als jQuery gebruikt, moet u erg op de hoogte zijn van verschillen tussen browsers. U kunt meestal de browser detecteren door de eigenschap navigator.useragent op te vragen. Dit wordt browserdetectie genoemd. De browserdetectie is geen goede strategie voor de meeste gevallen omdat dit geen rekening kan houden met welke functies nieuwere versies van een browser hebben. Sommige browsers bieden ook de mogelijkheid om de eigenschap navigation.useragent te wijzigen zodat ze een andere browser lijken te zijn.

De functiedetectie is de aanbevolen methode. Door te detecteren welke functies beschikbaar zijn, kunt u codepaden maken voor de browsers die u ondersteunt zonder precies te weten welke browser wordt gebruikt. Voor meer informatie over functiedetectie, raadpleegt u Hoe functies detecteren in plaats van browsers

Open de DOM niet

JavaScript ontwikkelaars worden gebruikt om te communiceren met Document Object Model (DOM) elementen in de code. U kunt de methode window.getElementById of de bibliotheek jQuery gebruiken. U kunt deze technieken in uw HTML webresources gebruiken, maar ze worden niet ondersteund voor toegangselementen in Microsoft Dynamics 365 toepassingspages of entiteitformulieren. In plaats daarvan wordt de toegang tot entiteitelementen beschikbaar door het objectmodel Xrm.Page. Het Microsoft Dynamics 365 ontwikkelingsteam reserveert het recht om te wijzigen hoe pagina's worden samengesteld, inclusief de waarden ID voor elementen, dus het gebruik van het objectmodel Xrm.Page beschermt uw code tegen wijzigingen in de manier waarop pagina's worden geïmplementeerd. Zie Het objectmodel Xrm.Page gebruiken voor meer informatie.

Bepaal unieke namen voor uw JavaScript-functies

Als u de enige ontwikkelaar bent voor een HTML pagina, kunt u gemakkelijk de namen beheren van de JavaScript functies die u gebruikt. In Microsoft Dynamics 365 kunnen andere oplossingen JavaScript functies toevoegen aan de pagina waar uw functie wordt gebruikt.

Als twee JavaScript functies op een pagina dezelfde naam hebben, wordt de eerste bepaalde functie overschreven door de tweede. Daarom moet u ervoor zorgen dat u unieke definieert voor uw JavaScript functies. Zie Scriptbibliotheken maken voor meer informatie.

Gebruik asynchrone gegevenstoegangsmethoden

Als u toegang hebt tot gegevens via de Microsoft Dynamics 365-webservices, gebruik dan altijd een XMLHttpRequest die is geconfigureerd om asynchroon te worden uitgevoerd. De reden is dat de browser op één thread werkt. Als deze wordt gebruikt om een langlopend proces synchroon uit te voeren, zal de browser niet meer reageren.

Notitie

Synchrone XMLHttpRequests worden afgeschaft op de hoofdthread van de browser vanwege de nadelige effecten ervan op de ervaring van de eindgebruiker. Sommige webbrowsers geven nu een waarschuwing als dit wordt gedetecteerd. Als browsers ergens in de toekomst de specificaties implementeren, treedt InvalidAccessError een uitzondering op.Meer informatie:http://www.w3.org/TR/XMLHttpRequest/#synchronous-flag en https://xhr.spec.whatwg.org/#the-open()-method

JavaScript-fouten opsporen in Microsoft Dynamics 365

Elke browser bevat de een of andere extensie voor foutopsporing.Internet Explorer biedt ontwikkelaarhulpprogramma's voor foutopsporing in scripts in Microsoft Dynamics 365. De Internet Explorer ontwikkelaarhulpprogramma's kunnen worden geopend door op de knop F12 te drukken bij het raadplegen van een pagina met Internet Explorer. Voor meer informatie zie De F12 ontwikkelaarshulpprogramma's gebruiken.

Voor Google Chrome, druk op F12 om ontwikkelaarhulpprogramma's te openen.Firebug is een populaire browseruitbreiding voor webdevelopment dat Mozilla Firefox gebruikt. Voor Apple Safari moet u eerst het Ontwikkelaarsmenu in de menubalk in Geavanceerde voorkeuren selecteren. Vervolgens kunt u Webinspecteur weergeven selecteren in het menu Ontwikkeling.

U kunt ook Microsoft Visual Studio gebruiken. Zie Foutopsporing in JScript in Microsoft Dynamics CRM 2011 voor meer informatie.

Als u JavaScript-bibliotheke gebruikt in Microsoft Dynamics 365, worden uw bibliotheken geladen met de webpagina. Het kan soms moeilijk zijn om de specifieke bibliotheek te isoleren in de foutopsporingomgeving. Bij het gebruik van foutopsporinghulpprogramma's in Microsoft Edge, klikt u op het tabblad Debugger op het map-pictogram linksbovenin en vouwt u de beschikbare scripts uit. Zoek het script met de naam die overeenstemt met de naam van uw JavaScript-webresource, zoals de new_myCustomJavaScript.js webresource hieronder aangegeven. U kunt ook uw JavaScript-bibliotheek zoeken door de bestandsnaam te typen in het zoekvak.

JavaScript-fouten opsporen

De foutopsporinghulpprogramma's voor verschillende browsers hebben gelijkaardige mogelijkheden. Zodra u uw bibliotheek hebt gevonden, kunt u een omslagpunt instellen en de gebeurtenis maken die uw code moet doen uitvoeren.

In de nieuwe client van de interactieve servicehub (geïntroduceerd in Dynamics 365), injecteert Dynamics 365 de inhoud van uw JavaScript-bibliotheek op dynamische wijze, in plaats van deze met de pagina te laden. Dit impliceert dat u geen breekpunten kunt instellen in uw code, omdat elke keer dat de pagina opnieuw wordt geladen, uw JavaScript-code wordt opgenomen in een van de dynamische bibliotheken, wat voorkomt dat het breekpunt wordt bereikt. In dit geval moet u een andere methoden te gebruiken om foutopsporing in uw code uit te voeren.Meer informatie:Blog: Debugging JavaScript code in CRM using browser developer tools

Schrijf berichten op de console

Gebruik van de window.alert methode bij foutopsporing in JavaScript is nog steeds een veelgebruikte methode voor foutopsporing in code in de toepassing. Maar nu alle moderne browsers gemakkelijk toegang bieden tot foutopsporingsprogramma's, wordt deze methode niet aanbevolen, vooral wanneer anderen de toepassing gebruiken waarvoor u foutopsporing wilt uitvoeren.

Overweeg in plaats daarvan om uw berichten naar de console te schrijven. Hier volgt een kleine functie die u aan uw bibliotheken kunt toevoegen om te gebruiken om eventuele berichten te verzenden die u wilt weergeven aan de console wanneer deze open is.

function writeToConsole(message)
{
 if (typeof console != 'undefined') {
  console.log(message);
 }
}

In tegenstelling tot het gebruik van de waarschuwingsmethode, zullen mensen die de toepassing gebruiken geen berichten zien als u code vergeet te verwijderen die deze functie gebruikt.

Zie ook

Microsoft Dynamics 365 uitbreiden op de client
Werken met Dynamics 365-gegevens met behulp van webresources
Microsoft Dynamics 365 uitbreiden op de server
Code schrijven voor Microsoft Dynamics 365-formulieren
Opdrachten en het lint aanpassen
Webresources voor Microsoft Dynamics 365
Aan de slag met de web-API van Microsoft Dynamics 365 (JavaScript op de client)
Het objectmodel Xrm.Page gebruiken
Blog: debuggen JavaScript-code in CRM via de browser developer tools

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht