Question

Considérez le code suivant:

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

SP.UI.ModalDialog.showModalDialog(options);

Le code est exécuté à partir d'une action personnalisée ECB et d'une partie Web.Cela fonctionne bien dans IE, cependant, lorsque je l'appelle à partir du WebPart dans Google Chrome, il donne l'erreur suivante:

non capturé TypeError: l'objet # n'a pas de méthode 'showmodaldialog'

La chose étrange est que lorsque j'appelle exactement le même code (cela fait partie de ma bibliothèque) à partir de l'action personnalisée de la BCE fonctionne maintenant dans Google Chrome!

J'ai essayé de l'appeler avec

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

    Des idées ou une aide?Ça me rend fou!

Était-ce utile?

La solution

Ceci est un problème chrome avec son modèle de mise en cache.

S'il vous plaît assurez-vous d'appeler

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

Pour vous assurer que le fichier est chargé.

Autres conseils

Cette erreur spécifiée rencontrée dans le navigateur Chrome, pourrait être éliminée en utilisant sp.sod.execute (clé, nom de fonctionnement, argument) .

Remplacez la ligne

SP.UI.ModalDialog.showModalDialog(options);

avec le

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top