Del via


Bruge JavaScript med Microsoft Dynamics 365

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 (online og i det lokale miljø) giver mange muligheder for at bruge JavaScript. Al JavaScript i Microsoft Dynamics 365 tilføjes ved at oprette JavaScript-ressourcer på internettet. Dette emne indeholder oplysninger til udviklere, som bruger JavaScript, og indeholder links til relevante emner i Microsoft Dynamics 365-SDK og andre kilder.

Dette emne indeholder

Områder, hvor du kan bruge JavaScript i Microsoft Dynamics 365

Brug af jQuery

Skrive JavaScript til flere browsere

JavaScript-programmingens bedste fremgangsmåder

Fejlfinding af JavaScript i Microsoft Dynamics 365

Områder, hvor du kan bruge JavaScript i Microsoft Dynamics 365

Du kan bruge JavaScript til at udføre handlinger i formularscripts, kommandolinjen (båndet) og ressourcer på internettet.

Formularscripts

Den mest almindelige brug af JavaScript i Microsoft Dynamics 365 er at tilføje funktioner som hændelseshandlere for objektformularhændelser. Du kan finde flere oplysninger under Skriv kode til Microsoft Dynamics 365-formularer.

Kommandoer på kommandolinjen (båndet)

Hvis du tilpasser Microsoft Dynamics 365-kommandolinjen, kan du konfigurere kommandoer til kontrolelementer, du tilføjer. Disse kommandoer indeholder regler, der styrer, om kontrolelementet er aktiveret, og hvad der skal udføres, når kontrolelementet anvendes. Du kan finde flere oplysninger under Tilpasse kommandoer og båndet.

Webressourcer

Microsoft Dynamics 365 indeholder et organisationsejet objekt, der indeholder en binær repræsentation af en fil, der kan opnås adgang til ved hjælp af en URL. Denne fil kaldes en webressource. Der er flere forskellige typer af webressourcer. En webressource, der repræsenterer et JavaScript-bibliotek, kaldes en JavaScript-webressource. Du kan bruge en webside (HTML) som webressource til at levere en brugergrænseflade med JavaScript-biblioteker, der er inkluderet, ligesom du ville gøre for filer på en webserver. Fordi filerne er en del af Microsoft Dynamics 365, er brugere, der har adgang til dem, allerede godkendt. Du kan derfor bruge Microsoft Dynamics 365-webtjenester uden at skrive kode for at kunne godkende brugeren. Du kan finde flere oplysninger i Webressourcer til Microsoft Dynamics 365 og Arbejde med Dynamics 365-data ved hjælp af webressourcer.

Brug af jQuery

  • Bruge jQuery med HTML-webressourcer
    Vi anbefaler, at du bruger jQuery sammen med HTML-webressourcer for at levere brugergrænseflader, fordi det er et fremragende bibliotek på tværs af browsere.

    Med HTML-webressourcer styrer du de biblioteker, de findes, og der er ingen begrænsning af manipulation med dokumentobjektmodellen. Du kan frit bruge jQuery i dine HTML-webressourcer.

  • Undgå at bruge jQuery med formularscripts eller kommandoer på båndet
    Vi fraråder brug af jQuery i formularscripts og kommandoer på båndet.

    Det meste af den ydelse, der leveres af jQuery, gør det muligt for nem manipulation af dokumentobjektmodellen på tværs af browsere. Dette understøttes ikke direkte i formularscripts og kommandoer på båndet. Begræns dine scripts til at bruge de Xrm.Page- og Xrm.Utility-biblioteker, der er tilgængelige i formularscripts og kommandoer på båndet. Hvis du beslutter at bruge de resterende funktioner i jQuery, der kan bruges sammen med Microsoft Dynamics 365 og omfatter muligheden for at bruge $.ajax, skal du overveje følgende:

    • Få den bedste ydeevne ved ikke at indlæse jQuery på siden, hvis du ikke skal bruge det

    • Ved hjælp af $.ajax til at udføre anmodninger på Microsoft Dynamics 365 understøttes webtjenester, men der er alternativer. I stedet for at bruge $.ajax kan du bruge browsernes XMLHttpRequest-objekt direkte. JQuery-metoden $.ajax er bare en ombryder for dette objekt. Hvis du bruger det indbyggede XMLHttpRequest-objekt direkte, behøver du ikke at indlæse jQuery.

    • Hver version af jQuery, der er indlæst i en side, kan være en anden version. Forskellige versioner af jQuery har forskellige funktionsmåder, og det kan medføre problemer, når flere versioner af jQuery er indlæst på samme side. Der er en teknik til at afhjælpe dette, men den afhænger af jQuery-biblioteket og andre biblioteker, der afhænger af jQuery.Flere oplysninger:jQuery og jQuery UI med Dynamics CRM 2011 & 2013, jQuery.noConflict()

      Bemærk

      Fra Opdatering 1 til Microsoft Dynamics CRM Online 2015 køres formularscripts i et andet omfang end den jQuery-forekomst, der bruges af programmet. Det betyder, at der muligvis ikke er en forekomst af jQuery tilgængelig, når koden forsøger at bruge jQuery.noConflict. Hvis du skal bruge jQuery, skal du først finde frem til, om der findes en forekomst af jQuery, før du forsøger at bruge jQuery.noConflict.

Skrive JavaScript til flere browsere

Da du ikke ved, hvilken browser der vil være i brug, skal du sørge for, at alle de scripts, som du bruger, fungerer sammen med alle understøttede browsere. De fleste af de væsentlige forskelle mellem Internet Explorer og andre browsere har at gøre med HTML- og XML DOM-manipulation. Da HTML DOM-manipulation ikke understøttes, hvis scriptlogikken kun udfører understøttede handlinger og ved hjælp af Xrm.Page-API, kan de ændringer, der er nødvendige for at understøtte andre browsere, være små. Brug valideringsværktøjet til brugerdefineret kode til at identificere kode, der kun fungerer for Internet Explorer.

Et bibliotek på tværs af browsere som jQuery er en god løsning til udvikling af webressourcer, men bør ikke være nødvendigt for formularscripts eller kommandoer på båndet.Flere oplysninger:Brug af jQuery

Understøttelse af andre browsere

Da Microsoft Dynamics 365 (online og i det lokale miljø) understøtter W3C-standarder, vil programmet være tilgængeligt via enhver moderne browser og fra en hvilken som helst platform, der understøtter disse standarder. Men Microsoft Dynamics 365 vil kun blive testet med et bestemt sæt af browsere og platforme. Du kan se en liste over de understøttede platforme og browsere i TechNet: Understøttede webbrowsere.

Hvis du bruger en browser eller browserversion, der ikke understøttes, og du kun skriver servernavnet eller servernavnet med organisation som URL, vil du blive omdirigeret til siden Microsoft Dynamics 365 til telefoner. Siderne Dynamics 365 til telefoner kan forventes at fungere korrekt på de fleste browsere såsom browsere, der bruges i mobilenheder, med begrænset funktionalitet.

JavaScript-programmingens bedste fremgangsmåder

I følgende afsnit beskrives de bedste fremgangsmåder, når du bruger JavaScript med Microsoft Dynamics 365.

Undgå at bruge ikke-understøttede metoder

Du kan finde mange eksempler eller forslag, der beskriver metoder, der ikke understøttes, på internettet. Disse kan omfatte udnyttelse af udokumenteret intern funktion for sidekontrolelementer. Disse metoder fungerer måske, men fordi de ikke understøttes, kan du ikke forvente, at de vil vil fortsætte med at virke i fremtidige versioner af Microsoft Dynamics 365.

Brug valideringsværktøjet til brugerdefineret kode til at identificere kode, der bruger ikke-understøttede metoder.

Brug et JavaScript-bibliotek på tværs af browsere til brugergrænseflader med HTML-webressourcer

Et JavaScript-bibliotek på tværs af browsere, såsom jQuery, giver mange fordele ved udvikling af HTML-webressourcer, der skal understøtte flere browsere.JavaScript-biblioteker såsom jQuery leverer en samlet udviklingsoplevelse for alle browsere, der understøttes af Microsoft Dynamics 365. Disse funktioner er egnede, når du bruger HTML-webressourcer for at levere brugergrænseflader.JavaScript-biblioteker såsom jQuery leverer ensartede måder at kommunikere med Document Object Model (DOM).

Brug ikke jQuery til formularscript eller kommandoer

Vi fraråder og understøtter ikke brug af jQuery til nogen sider i programmet. Dette omfatter formularscripts og båndkommandoer.Flere oplysninger:Brug af jQuery.

Kend begrænsninger for levering af CDN-biblioteker (Content Delivery Network)

CDN-JavaScript-biblioteker (Content Delivery Network) giver mange fordele til offentlige websteder. Da disse biblioteker har internettet som vært, skal du ikke oprette webressourcer, der indeholder indholdet af bibliotekerne. For Microsoft Dynamics 365 bør du overveje følgende problemer, før du bruger et CDN-JavaScript-bibliotek.

  • Brugere af Microsoft Dynamics 365 til Microsoft Office Outlook med offlineadgang-klienten har mulighed for at arbejde uden nogen internetforbindelse, mens de arbejder offline. Hvis du er afhængig af en internetforbindelse til dine JavaScript-biblioteker, vil din programkode mislykkes.

  • Nogle organisationer vil begrænse internetadgang for medarbejdere. Medmindre de konfigurerer netværket for at få adgang til CDN-bibliotekers websteder, kan din kode mislykkes for disse organisationer.

I stedet for at bruge CDN-biblioteker kan du oprette et script (JavaScript) som webressource med indholdet af biblioteket. Da webressourcer er organisationsejede objekter, synkroniseres de, når en Microsoft Dynamics 365 til Outlook med offlineadgang-bruger går offline. Da disse webressourcer nu bliver en del af programmet, vil de ikke blive blokeret, hvis en organisation begrænser adgangen til internettet.

Brug funktionsregistrering, når du skriver funktioner til flere browsere

Selvom du bruger et bibliotek på tværs af browsere såsom jQuery, skal du være meget opmærksom på forskelle mellem browsere. Du kan normalt registrere, hvilken browser der bruges, ved at forespørge på navigator.useragent-egenskaben. Dette kaldes registrering af browseren. Registrering af browser er ikke en god strategi i de fleste tilfælde, fordi den ikke kan tage hensyn til, hvilke funktioner nyere versioner af en browser har. Nogle browsere tilbyder desuden mulighed for at redigere navigation.useragent-egenskaben, så de ser ud til at være en anden browser.

Funktionsregistrering af er den anbefalede fremgangsmåde. Ved at registrere, hvilke funktioner der er tilgængelige, kan du oprette kodestier til de browsere, du understøtter, uden at vide nøjagtigt, hvilken browser der bruges. Find flere oplysninger om funktionsregistrering under Sådan registreres funktioner i stedet for browsere.

Du skal ikke skaffe adgang til DOM

JavaScript-udviklere er vant til at arbejde med DOM-elementer (Document Object Model) i kode. Du kan bruge window.getElementById-metoden eller jQuery-biblioteket. Du kan frit bruge disse teknikker i dine HTML-webressourcer, men de understøtter ikke adgang til elementer i Microsoft Dynamics 365-programsider eller -objektformularer. I stedet gives adgang til objektformularelementer via Xrm.Page-objektmodellen.Microsoft Dynamics 365-udviklingsteamet forbeholder sig ret til at ændre, hvordan siderne er sammensat, herunder ID-værdier for elementer, så brug af Xrm.Page-objektmodellen beskytter din kode mod ændringer af, hvordan siderne er implementeres. Du kan finde flere oplysninger under Bruge Xrm.Page-objektmodel.

Definer entydige navne for JavaScript-funktioner

Når du er den eneste udvikler af en HTML-side, kan du nemt administrere navnene på de JavaScript-funktioner, du bruger. I Microsoft Dynamics 365 kan andre løsninger føje JavaScript-funktioner til siden, hvor din funktion bruges.

Hvis to JavaScript-funktioner på en side har samme navn, overskrives den første funktion, der er defineret, af den anden. Derfor skal du kontrollere, at du definerer entydige navne på dine JavaScript-funktioner. Du kan finde flere oplysninger under Oprettelse af scriptbiblioteker.

Brug asynkrone dataadgangsmetoder

Når du får adgang til data ved hjælp af Microsoft Dynamics 365-webtjenester, skal du altid bruge en XMLHttpRequest, der er konfigureret til at køre asynkront. Årsagen er, at browseren fungerer på en enkelt tråd. Hvis denne tråd bruges til at udføre en langvarig proces synkront, holder browseren op med at svare.

Bemærk

Synkron XMLHttpRequests frarådes på hovedtråden af browseren på grund af de negative virkninger på slutbrugerens oplevelse. Nogle browsere giver nu en advarsel, når det registreres. Hvis browsere implementerer specifikationen på et tidspunkt i fremtiden, udløses en InvalidAccessError-undtagelse.Flere oplysninger:http://www.w3.org/TR/XMLHttpRequest/#synchronous-flag og https://xhr.spec.whatwg.org/#the-open()-method

Fejlfinding af JavaScript i Microsoft Dynamics 365

Alle browsere har en slags fejlfindingsudvidelse.Internet Explorer indeholder udviklingsværktøjer, du kan bruge til at foretage fejlfinding af scripts i Microsoft Dynamics 365.Internet Explorer-udviklingsværktøjerne kan åbnes ved at trykke på F12, når du får vist en side ved hjælp af Internet Explorer. Du kan finde flere oplysninger i Brug af F12-udviklingsværktøjer.

For Google Chrome skal du trykke på F12 for at åbne udviklingsværktøjer.Firebug er en populær browserudvidelse til webudvikling ved hjælp Mozilla Firefox. For Apple Safari skal du først vælge Show Develop menu in menu bar i Advanced Preferences. Derefter kan du vælge Show Web Inspector i menuen Develop.

Du kan også bruge Microsoft Visual Studio. Du kan finde flere oplysninger undre Sådan foretager du fejlfinding af JScript i Microsoft Dynamics CRM 2011.

Når du bruger JavaScript-biblioteker i Microsoft Dynamics 365, indlæses bibliotekerne sammen med websiden. Det kan undertiden være vanskeligt at isolere dit specifikke bibliotek i fejlfindingsmiljøet. Når du bruger fejlfindingsværktøjer i Microsoft Edge, skal du under fanen Fejlfinding klikke på mappeikonet i øverste venstre hjørne for at udvide de tilgængelig scripts og finde det, hvis navn svarer til navnet på din JavaScript-webressource, f.eks. new_myCustomJavaScript.js-webressourcen, der vises nedenfor. Du kan også søge efter JavaScript-biblioteket ved at skrive navnet i søgefeltet.

Fejlfinding af JavaScript

Fejlfindingsværktøjer til forskellige browsere har lignende funktioner. Når du har fundet dit bibliotek, kan du angive et pausepunkt og genskabe den hændelse, der bør medføre, at din kode kører.

I den nye interaktive servicehubklient (introduceret i Dynamics 365), indsætter Dynamics 365 dynamisk indholdet af dit JavaScript-bibliotek i stedet for at indlæse den på siden. Det betyder, at du kan ikke angive pausepunkter i din kode, fordi hver gang siden indlæses, indsættes din kode i et af de dynamiske biblioteker, hvilket forhindrer, at det angivne pausepunkt bliver ramt. I så fald vil du skulle bruge nogle andre teknikker til at foretage fejlfinding i programkoden.Flere oplysninger:Blog: Fejlfinding af JavaScript-kode i CRM ved hjælp af udviklingsværktøjer i browseren

Skriv meddelelser til konsollen

Brug af metoden window.alert, når du foretager fejlfinding af JavaScript, er stadig en almindelig måde at foretage fejlfinding af kode på i programmet. Men nu, hvor alle moderne browsere giver nem adgang til fejlfindingsværktøjer, er det ikke den bedste fremgangsmåde, især når andre måske bruger det program, du foretager fejlfinding af.

Overvej at skrive meddelelser til konsollen i stedet. Følgende er en lille funktion, som du kan føje til dine biblioteker, som du kan bruge til at sende meddelelser, du vil have vist i konsollen, når den er åben.

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

I modsætning til window.alert-metoden, hvis du har glemt at slette kode, der bruger denne funktion, kan personer, der bruger programmet, ikke se dine meddelelser.

Se også

Udvide Microsoft Dynamics 365 på klienten
Arbejde med Dynamics 365-data ved hjælp af webressourcer
Udvide Microsoft Dynamics 365 på serveren
Skriv kode til Microsoft Dynamics 365-formularer
Tilpasse kommandoer og båndet
Webressourcer til Microsoft Dynamics 365
Introduktion til Microsoft Dynamics 365-web-API'en (JavaScript på klientsiden)
Bruge Xrm.Page-objektmodel
Blog: Fejlfinding af JavaScript-kode i CRM ved hjælp af udviklingsværktøjer i browseren

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret