考虑以下代码:

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

SP.UI.ModalDialog.showModalDialog(options);
.

代码从ECB自定义操作和Web部件执行。它在IE中工作正常,但是当我从Google Chrome中的WebPart调用它时,它会给它提供以下错误:

未捕获的typeerror:对象#没有方法'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(key,functionname,args)方法

更换行

SP.UI.ModalDialog.showModalDialog(options);
.

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

许可以下: CC-BY-SA归因
scroll top