使用客户端对象模型API和一些JavaScript,我希望检索共享点列表中的项目,并在加载网页时将其显示在网页中。

我已经成功实现了使用按钮或链接单击事件处理程序的示例。但是,当我尝试在onload中使用代码时,出现错误。



假设我在头中定义了ViewItem()函数。

如果我在体内使用此代码:

  <a onclick="javascript:ViewItem()">View</a>


一切皆好。

如果我尝试使用经典onlaod,则调用将失败:

 <script type="text/javascript">
  window.onload = ViewItem ;
 </script>




ViewItem函数中产生错误的代码行如下:

   var myContext = new SP.ClientContext.get_current();


这段代码可以与onclick事件处理程序正常工作,但不能与onload事件处理程序一起出现以下错误:


  
    SP.ClientContext为null或不是对象
  


我该如何解决这个问题?为什么仅在使用onload调用函数时才会发生?

最佳答案

您必须等待所有SharePoint脚本准备就绪:

ExecuteOrDelayUntilScriptLoaded(ViewItem, "sp.js");


如果您还使用jQuery,则可以使用:

$(function(){
    ExecuteOrDelayUntilScriptLoaded(ViewItem, "sp.js");
});

07-24 21:11