Oggetto # non ha metodo 'showmodaldialog'
-
10-12-2019 - |
Domanda
Considera il seguente codice:
var options = {
title: 'Create a new Post'
autoSize: true,
url: url
}
SP.UI.ModalDialog.showModalDialog(options);
.
Il codice viene eseguito da un'azione personalizzata della BCE e da una parte web.Funziona bene in IE, tuttavia quando lo chiamo dal WebPart in Google Chrome, fornisce il seguente errore:
.Uncaught TypeError: Object # non ha metodo 'showmodaldialog'
La cosa strana è che quando chiamo lo stesso codice identico (è parte della mia biblioteca) dall'azione personalizzata della BCE ora funziona in Google Chrome!
Ho provato a chiamarlo con
.
ExecuteOrDelayUntilScriptLoaded
_spBodyOnLoadFunctionNames.push("funcname")
LoadSodByKey("sp.ui.dialog.js", null);
Qualche idea o aiuto?Mi sta facendo impazzire!
Soluzione
Questo è un problema cromato con il suo modello di memorizzazione nella cache.
Assicurati di chiamare
LoadSodByKey("SP.UI.Dialog.js", null);
.
Per garantire il caricamento del file.
Altri suggerimenti
Questo errore specificato che si incontra nel browser Chrome, potrebbe essere eliminato utilizzando sp.sod.execute (key, functionname, args) metodo .
Sostituisci la riga
SP.UI.ModalDialog.showModalDialog(options);
.
con il
SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
.