EXEGUTEOROMSELAYUNTILSCRITLOADLOADLOGGIATO CON SP.JS Quando è previsto l'oggetto della modalità di debug

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/76370

  •  10-12-2019
  •  | 
  •  

Domanda

Attualmente ho un file JavaScript che viene caricato nelle mie pagine di SharePoint.

jQuery(document).ready(function() {
 ExecuteOrDelayUntilScriptLoaded(myfunction(), "sp.js");
});

myfunction = function(){
 /*Do something here.*/
};
.

Ora il JavaScript funziona bene, tuttavia su una pagina di elenco, impedisce il caricamento del nastro della scheda Elenco. Nella console ottengo sotto errore.

.

Script5007: oggetto previsto init.debug.js, linea 5153 carattere 5 ERRORE.

Anche se commendo tutta la funzione, quindi sembra esattamente come sopra ho ancora il messaggio di errore.

Ho notato che se cambio "sp.js" su "sp.debug.js" non ottengo il messaggio di errore. Dalla guardare gli script che vengono caricati sulla pagina, questo ha senso come sp.debug.js è caricato e non sp.js. Non voglio davvero mettere sp.debug.js nel codice JavaScript come quando raggiunge i server di produzione, non userà sp.debug.js. Non ho mai notato che questo accade prima con qualsiasi codice che ha eseguito ExecuteOrDelayAyuntilScriptLoad (JSFunction (), "sp.JS"). C'è un modo per farlo funzionare per entrambi gli ambienti come con una dichiarazione #ifdebug in JavaScript? O qualche altra idea.

È stato utile?

Soluzione

stai usando executeordERelayAyuntilscriptLoaded sbagliato, dovresti usareIl nome della funzione, non eseguirlo.

In questo modo:

jQuery(document).ready(function() {
 ExecuteOrDelayUntilScriptLoaded(myfunction, "sp.js");
});
.

Nota che ho rimosso il "()" da MyFunction.Ora dovrebbe funzionare come previsto

Altri suggerimenti

Non utilizzare JQuery per tali scopi, utilizzare invece delle funzionalità incorporate di SharePoint:

var myFunction = function(){
    ExecuteOrDelayUntilScriptLoaded(yourfunction, "sp.js");
}
_spBodyOnLoadFunctionNames.push("myFunction");
.

o una funzione anonima

_spBodyOnLoadFunctionNames.push(function(){
    ExecuteOrDelayUntilScriptLoaded(yourfunction, "sp.js");
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top