SPServices将无法加载

时间:2014-05-13 15:54:23

标签: jquery sharepoint spservices

在我的页面标题中,我有:

<script>
function insureSPServices(callbackFunction)
{
  if($().SPServices == null)
  {
     jQuery.getScript("./scripts/jquery.SPServices-2014.01.js", callbackFunction);
  } else {
      callbackFunction.call(null, "Already Loaded");
  }
}
function populate()
{
alert("SPServices loaded? " + (jQuery.SPServices == undefined ? "NO!!!" : "YES."));
}
</script>
<script type="text/javascript" language="javascript">
  $(document).ready(function()
  {
    alert("jQuery");
    alert("!" + $().SPServices.SPGetCurrentSite() + "!");
alert("jQuery loaded? " + (jQuery == undefined ? "NO!!!" : "YES."));
alert("SPServices loaded? " + (jQuery.SPServices == undefined ? "NO!!!" : "YES."
));
    insureSPServices(populate());
  });
</script>

我明白了: JQuery是的 SP服务没有!!! SPServices NO !!!

备注: 这两个脚本路径是合法的。

从以下位置下载SPServices脚本:   http://spservices.codeplex.com/downloads/get/786994

check / init逻辑来自这里:   http://devspoint.wordpress.com/2011/01/07/quick-way-to-load-spservices/

所有帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

可能存在一些问题:

  1. 路径可能无法正确解析(有时相对网址似乎无法在SharePoint上下文中正常工作)
  2. 在Javascript中使用jQuery时,例如SharePoint Webpart尝试在使用SP-Services之前使用jQuery.noConflict()。在大多数情况下,由于SharePoint中已加载的JQuery,我遇到了使用$或jQuery的问题。
  3. 在SharePoint $(文档).ready中使用javascript时可能会导致问题,因为这实际上并不意味着所有内容都已加载。您可以尝试使用_spBodyOnLoadFunctionNames.push(“myfunction”)。

答案 1 :(得分:2)

我也坚持这个问题几个小时。对我来说,答案是在jQuery声明中使用jQuery.noConflict()。像这样:

<script src="../../myLib/jquery-1.11.3.min.js" type="text/javascript">
jQuery.noConflict();
</script>

答案 2 :(得分:-1)

在SharePoint Web部件中使用jQuery时,请尝试使用jQuery.noConflict()。在许多情况下,使用$jQuery时会出现问题,因为SharePoint中已经加载了jQuery。