用于在页面加载时显示sharepoint列表项的Javascript

用于在页面加载时显示sharepoint列表项的Javascript,javascript,jquery,sharepoint,sharepoint-2010,Javascript,Jquery,Sharepoint,Sharepoint 2010,有了客户端对象模型API和一点javascript,我想检索sharepoint列表中的项目,并在网页加载时将它们显示到网页中 我已经成功地实现了使用按钮或链接单击事件处理程序的示例。但是,当我尝试使用带有onload的代码时,我得到了一个错误 假设我在head中定义了ViewItem()函数 如果我在正文中使用此代码: <a onclick="javascript:ViewItem()">View</a> ViewItem函数中生成错误的代码行如下: v

有了客户端对象模型API和一点javascript,我想检索sharepoint列表中的项目,并在网页加载时将它们显示到网页中

我已经成功地实现了使用按钮或链接单击事件处理程序的示例。但是,当我尝试使用带有
onload
的代码时,我得到了一个错误


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

如果我在正文中使用此代码:

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

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");
});

上帝保佑你!jQuery工作!!我尝试过Javascript,但不知道为什么。使
executeOrderLayintlScriptLoaded
工作的唯一方法是jQuery。你知道为什么吗?我在使用jQuery或不使用jQuery时,页面中的其他脚本可能存在一些问题。
$(function(){
    ExecuteOrDelayUntilScriptLoaded(ViewItem, "sp.js");
});