3

这是我在项目中所做的:

<asp:Content ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
<script type="text/javascript">
  alert("before");
  //It can not work cause the LIST is in the subsite called "Service"
  //var clientContext = SP.ClientContext.get_current();
  var context =new SP.ClientContext("http://sp2010dev1:88/Service/");
  alert(context );  
</script>
</asp:Content>

但是,警报(上下文)无法执行,当我检查它显示给我的concole时TypeError: SP.ClientContext is not a constructor,也就是说ClientContext的初始化有问题。为什么?如何获取 ClientContext?还是因为缺少SP.js造成的?

我的最终解决方案是:将此语句添加到母版页:,然后一切正常!希望这可以帮助你。

4

2 回答 2

4

不要直接在<script>块中写入,而是尝试插入function并在身体负载时调用该函数。

另一个好方法是使用 jquery 调用

$(document).ready()(function(){
var context =new SP.ClientContext("http://sp2010dev1:88/Service/");
  alert(context );  

});

尝试一次,即使它不起作用,也会尝试找到另一个解决方案。

根据 steve 的建议,除此之外,首先包括sp.js并执行剩余的事情。

于 2012-12-05T09:15:17.020 回答
2

是的,可能是因为没有加载 SP.js。尝试这个:

<SharePoint:ScriptLink runat="server" Name="SP.js" Localizable="false" OnDemand="False" LoadAfterUI="True"></SharePoint:ScriptLink>
<script type="text/javascript">
    ExecuteOrDelayUntilScriptLoaded(function () {
        /* your code here */;
    }, "sp.js");
</script>
于 2012-12-05T03:31:49.017 回答