让Javascript在SharePoint 2010上运行时遇到问题

Having problems getting Javascript to work on SharePoint 2010

本文关键字:运行时 遇到 问题 2010 Javascript SharePoint      更新时间:2023-09-26

上周我在寻求帮助,为SharePoint 2007制作一个简单的javascript代码,用于SharePoint 2010,但不幸的是,我没有得到一个明确的答案,我可以在工作的地方使用,所以我决定试着自己制作。它被认为是一个拍卖列表,在"剩余时间"字段中有一个倒计时,直到物品过期,但我不知道出了什么问题。我对javascript和sharepoint非常陌生,但我是一名经验丰富的程序员。有人能帮忙吗?下面是代码:

<script type="text/javascript">
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var lists = web.get_lists();
var listId = SP.ListOperation.Selection.getSelectedList();
var list = lists.getById(listId);
var item = getItemByName("End Date");
var end = Date.parse(item.text())/1000;
var todayNow = new Date();
todayNow = Date.parse(today)/1000;
var result = (end-todayNow);
var item2 = getItemByName("Time Left");
item2.text(result);
</script>

结束日期是一个可能会被隐藏的字段,但只是用作占位符,以查找从现在到项目过期的差异。

谢谢大家的回复。

编辑:好的,谢谢罗伯特,你真的帮了我很多。当我看到你的最后一条评论时,我正要发布这个。我现在已经非常接近了,因为我一直在谷歌上搜索和研究你在第一条评论中所说的话,我已经走到了这一步:

<

script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(getWebSiteData, "sp.js");
var context = null;
var web = null;
var lists = null;
var listId = null;
var list = null;
var item = null;
function getWebSiteData(){
context = new SP.ClientContext.get_current();
web = context.get_web();
lists = web.get_lists();
listId = SP.ListOperation.Selection.getSelectedList();
list = lists.getById(listId);
context.load(list, 'End Date');
context.executeQueryAsync(Function.createDelegate
(this, this.onSuccessMethod), Function.createDelegate
(this, this.onFailureMethod));
}
function onSuccessMethod(sender, args){
alert('web title:' + web.get_title() + ''n ID:' + web.get_id
());
}
function onFailureMethod(sender, args){
alert('request failed' + args.get_message
() + ''n' + args.get_stackTrace());
}
</script>

我想我唯一要做的就是弄清楚如何获得当前项目,这样我就可以设置该特定项目的剩余时间。你知道怎么做吗?我和我想的那么近吗?再次感谢你的帮助。

使用javascript访问SharePoint时,使用的是ECMA客户端对象模型。我还没有使用过07版的客户端对象模型,但我已经使用过10版,并且可以立即判断您发布的代码在sp10中不起作用。至少在sp10.com中,每次获取SharePoint对象的新实例(列表、web、listItem、列等)时,都需要将该项设置到本地上下文中,然后通过异步方法在服务器上加载上下文。只有在该点之后,才能访问所需的引用对象中的字段。如果你想不通,请告诉我。以下是一些示例代码:http://pastebin.com/3amgaEhv

编辑:关于更新列表项,我刚刚找到了这个链接,在这里:http://sprider.org/2011/12/13/sharepoint-ecmascript-to-adddeleteupdateget-list-items/