0

我已经为 SharePoint 2013 创建了一个示例应用程序并成功部署了它。启动应用程序时,调用 RegisterSod 的每一行代码都出现以下错误

Message: 'RegisterSod' is undefined
Line: 14
Char: 1
Code: 0


<script type="text/javascript">RegisterSod("initstrings.js", "\u002f_layouts\u002f15\u002f1033\u002finitstrings.js?rev=uNmvBiHdrBzcPQzXRpm\u00252FnQ\u00253D\u00253D");</script>
<script type="text/javascript">RegisterSod("strings.js", "\u002f_layouts\u002f15\u002f1033\u002fstrings.js?rev=cSu1pcWiRc999fyCNzJplg\u00253D\u00253D");RegisterSodDep("strings.js", "initstrings.js");</script>

无论如何,这个问题可以解决吗?

4

2 回答 2

7

我知道它已经过时了,但我希望这会帮助其他遇到问题的人:

此问题很可能是由于 SharePoint Server 中没有根网站造成的。

通过转到管理中心 -> 创建站点集合来创建根站点集合,并在选择网站地址时确保使用“/”作为站点地址,这意味着这将是根站点。

我在这里写了一篇关于这个错误的博文

希望有帮助!

于 2015-06-28T15:56:53.587 回答
0

此脚本使用 jQuery 中的 getScript 函数加载 SP.Runtime.js 和 SP.js 文件。下载文件后,您的应用程序可以访问 SharePoint 的 JavaScript 对象模型,包括函数 RegisterSod。

请将此脚本添加到页面

$(文档).ready(函数 () {

    // 获取 URI 解码的 URL。
    hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));

    // js 文件位于 URL 中,格式如下:
    // web_url/_layouts/15/resource_file
    var scriptbase = hostweburl + "/_layouts/15/";

    // 加载js文件并继续
    // 执行操作函数。
    $.getScript(scriptbase + "MicrosoftAjax.js",
        功能 () {
            $.getScript(scriptbase + "SP.Runtime.js",
                功能 () {
                    $.getScript(scriptbase + "SP.js", initContext);
                }
            );
        }
     );
});
于 2014-05-07T14:46:19.140 回答