Pregunta

Considere el siguiente código:

var options = {
    title: 'Create a new Post'
    autoSize: true,
    url: url
}

SP.UI.ModalDialog.showModalDialog(options);

El código se ejecuta desde una acción personalizada del BCE y desde una parte web.Funciona bien en IE, sin embargo, cuando lo llamo desde la página web en Google Chrome, da el siguiente error:

TypeError no capturado: objeto # no tiene método 'ShowModalDialog'

Lo extraño es que cuando llamo al mismo código exacto (es parte de mi biblioteca) de la acción personalizada del BCE, ¡ahora funciona en Google Chrome!

He intentado llamarlo con

  • ExecuteOrDelayUntilScriptLoaded
  • _spBodyOnLoadFunctionNames.push("funcname")
  • LoadSodByKey("sp.ui.dialog.js", null);

    ¿Alguna idea o ayuda?¡Me está volviendo loco!

¿Fue útil?

Solución

Este es un problema de cromo con su modelo de almacenamiento en caché.

Por favor, asegúrese de llamar

LoadSodByKey("SP.UI.Dialog.js", null); 

para asegurarse de que el archivo esté cargado.

Otros consejos

Este error especificado que se encuentra en el navegador de Chrome, podría eliminarse usando sp.sod.execute (clave, nombre de función, args) MÉTODO .

Reemplazar la línea

SP.UI.ModalDialog.showModalDialog(options);

con el

SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);

Licenciado bajo: CC-BY-SA con atribución
scroll top