1

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

<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 YES SPServices NO !!!SPServices 不!

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

SPServices 脚本下载自: http ://spservices.codeplex.com/downloads/get/786994

检查/初始化逻辑来自这里: http ://devspoint.wordpress.com/2011/01/07/quick-way-to-load-spservices/

所有帮助表示赞赏。

4

3 回答 3

3

可能有几个问题:

  1. 路径可能无法正确解析(有时相对 url 在 SharePoint 上下文中似乎无法正常工作)
  2. 当在 Javascript 中使用 jQuery 时,例如 SharePoint webpart 尝试在使用 SP-Services 之前使用 jQuery.noConflict()。在大多数情况下,我在使用 $ 或 jQuery 时遇到问题,因为 SharePoint 中已经加载了 JQuery。
  3. 在 SharePoint 中使用 javascript $(document).ready 可能会导致问题,因为这实际上并不意味着所有内容都已加载。您可以尝试改用 _spBodyOnLoadFunctionNames.push("myfunction") 。
于 2014-07-30T09:07:50.543 回答
2

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

<script src="../../myLib/jquery-1.11.3.min.js" type="text/javascript">
jQuery.noConflict();
</script>
于 2016-08-18T08:40:21.910 回答
-1

在 SharePoint Web 部件中使用 jQuery 时,请尝试使用jQuery.noConflict()。在许多情况下,使用$jQuery由于 SharePoint 中已加载的 jQuery 存在问题。

于 2015-06-24T09:48:43.380 回答