【发布时间】:2017-06-18 01:50:57
【问题描述】:
我正在使用 HTML 和 JavaScript 创建一些网页,最终结果必须上传到给定的 SharePoint 列表中。我发现了很多关于如何做到这一点的细节,但从第一天开始,我就只遇到一个问题。我已经尝试了下面链接中给出的所有可能的组合。
但最终我仍然遇到同样的错误。 “SP”未定义。
给你一点背景。我已经创建了网页,并且该网页存储在 SharePoint 网站上的共享文件夹中。现在向最终用户提供一个超链接,以单击该链接直接打开给定 SharePoint 站点的共享文件夹中的给定存储网页。下面给出的是代码。我知道我可能会遗漏一些非常小的东西。
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function preparePage()
{ //Hide Execution lead
if( document.getElementById("ExeLead").style.display=='none' ){
document.getElementById("ExeLead").style.display = '';
}
else {
document.getElementById("ExeLead").style.display = 'none';
}
getDetails();
}
function getParam(name)//to get details that is passed via url
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec(window.location.href);
results[1] = results[1].replace(/%20/g," ");
if(results == null)
return "NA";
else
return results[1];
}
function getDetails()//extract info form URL
{
frmUpdates.txtBIStatus.value=getParam("Status");
frmUpdates.txtBINumber.value=getParam("BINo");
}
var siteUrl = 'Url to the SharePoint site';
SP.SOD.executeFunc("sp.js", createListItem());
/*if(!SP.SOD.executeOrDelayUntilScriptLoaded(createListItem, 'sp.js')){
LoadSodByKey('sp.js');
};*/
//LoadSodByKey('sp.js');
function createListItem() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
var itemCreateInfo = new SP.ListItemCreationInformation();
this.oListItem = oList.addItem(itemCreateInfo);
oListItem.set_item('IdeaRef', 'My New Item');
oListItem.set_item('Status', 'Hello World!');
oListItem.update();
clientContext.load(oListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
alert('Item created: ' + oListItem.get_id());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
</Script>
<title>Tool</title>
</head>
<body onLoad="preparePage()">
<form name="frmUpdates">
<table border="5" width="444">
<tr>
<td width="344" height="35" colspan="2"> Tool</td>
</tr>
<tr>
<td width="144" height="35">Bright Idea #:</td>
<td width="300"> <input type="text" name="txtBINumber" size="40"></td>
</tr>
<tr>
<td width="144" height="35">Bright Idea Status</td>
<td width="300"> <input type="text" name="txtBIStatus" size="40"></td>
</tr>
<tr id="ExeLead">
<td width="144" height="35">Assign Execution Lead</td>
<td width="300" height="35"> <input type="text" name="txtExecutionLead" size="40"></td>
</tr>
<tr>
<td width="144" height="35" colspan="2">Comments</td>
</tr>
<tr>
<td width="444" height="150" colspan="2"> <textarea rows="8" cols="48" name="txtComments" from="frmComments">Enter your comments here....</textarea></td>
</tr>
<tr>
<td width="444" height="35" colspan="2"> <input type="button" value="Submit" name="btnSubmit" onclick="createListItem()"></td>
</tr>
</table>
</form>
</body>
</html>
请注意,我正在使用记事本编写此代码,并使用 Internet Explorer 的 F12 检查代码的运行情况。
【问题讨论】:
标签: javascript sharepoint sharepoint-list