Tengo un script JS personalizado que cargo en SharePoint y tengo problemas para ejecutar mi método init después de que SP finaliza su propia inicialización.Ejecutar la función de JavaScript después de inicializar SharePoint
_spBodyOnLoadFunctionNames
me trataron de la manera "oficial" primero y ha añadido mi nombre de función a la lista de funciones ejecutadas después de la carga del cuerpo con _spBodyOnLoadFunctionNames.push("myInitMethod");
pero que no dispara en cada carga de la página, no se puede confiar en ese.
ExecuteOrDelayUntilScriptLoaded
Luego trató de utilizar la función ExecuteOrDelayUntilScriptLoaded(myInitMethod, "sp.js");
pero no se dispara en cada carga de página tampoco.
Ambas formas funcionan, pero no siempre. Supongo que mi script se carga a veces antes de el SP se inicializa. Esto sucede principalmente en Chrome pero también en IE.
¿Cómo puedo asegurarme de que mi script se ejecuta cuando SP está listo?
Nota: Hay un comportamiento interesante cuando se carga la página y el objeto SP no se ha inicializado completamente (las funciones registradas en ExecuteOrDelayUntilScriptLoaded no ha sido llamado): Tan pronto como haga clic en el "Navegar Arriba "anclar en la página (donde se puede ver el hiarchy de los subsitios) se cargan los siguientes archivos y se llama a mi función init (registrada en ExecuteOrDelayUntilScriptLoaded).
- core.debug.js
- sp.core.debug.js
- ScriptResx.ashx
- sp.ui.dialog.debug.js
- sp.runtime.debug.js
- sp.debug.js
Así que todo está bien después de eso clic - pero ¿por qué no en pageload como debe ser?