Вопрос

Рассмотрим следующий код:

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

SP.UI.ModalDialog.showModalDialog(options);

Код выполняется из пользовательского действия ECB и из веб-части.Он отлично работает в IE, однако, когда я вызываю его из веб-части в Google Chrome, он выдает следующую ошибку:

Неперехваченная ошибка типа:Объект # не имеет метода 'showModalDialog'

Самое странное, что когда я вызываю точно такой же код (это часть моей библиотеки) из пользовательского действия ECB, он теперь работает в Google Chrome!

Я пробовал вызвать его с помощью

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

Есть какие-нибудь идеи или помощь?Это сводит меня с ума!

Это было полезно?

Решение

Это проблема Chrome с его моделью кэширования.

Пожалуйста, обязательно позвоните

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

Чтобы убедиться, что файл загружен.

Другие советы

Эта указанная ошибка, возникающая в браузере Chrome, может быть устранена с помощью Метод SP.SOD.execute(ключ, имяфункции, аргументы).

Замените строку

SP.UI.ModalDialog.showModalDialog(options);

с

SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top