在提出问题之前,我想先介绍一些背景知识,因为我觉得这里的问题可能源于任何地方。在我们的 SharePoint 网站上,我们有一个带有按钮的页面,该按钮有一个 html 文件存储在网站文档库中。该文件有一个与其关联的 JavaScript 文件,也存储在文档库中。这些文件一起为用户提供了数据输入界面。理想情况下,一旦用户提交表单,JavaScript 就会在 SharePoint 网站的列表之一中创建一个新项目。下面是提交后运行的代码的测试片段。
function createItemInSharePointList(survey) {
try {
// Ensure SP.ClientContext is defined
if (typeof SP === 'undefined' || typeof SP.ClientContext === 'undefined') {
console.error("SharePoint scripts not loaded.");
return;
}
// Get the current SharePoint context
var context = SP.ClientContext.get_current();
// Get the target list
var list = context.get_web().get_lists().getByTitle("Test List");
// Create a new list item
var itemCreateInfo = new SP.ListItemCreationInformation();
var newItem = list.addItem(itemCreateInfo);
// Set the field values for the new item
newItem.set_item("Item 1", survey.data.firstQ);
newItem.set_item("Item 2", survey.data.secondQ);
newItem.set_item("Item 3", survey.data.thirdQ);
// Save the changes
newItem.update();
context.load(newItem);
// Execute the request
context.executeQueryAsync(
function () {
console.log("Item created successfully!");
},
function (sender, args) {
console.error("Error creating item: " + args.get_message());
}
);
} catch (error) {
console.error("Error creating item in SharePoint list:", error);
}
}
现在来说说问题。当用户提交表单时,会抛出错误“SP.ClientContext 未定义”。最初我认为问题是 SP.js 库未加载,但在 html 中进行了一些检查后,情况似乎并非如此。下面的代码打印出除 SP.ClientContext 之外的所有内容均已成功加载。
<!-- Add references to the SharePoint JSOM libraries -->
<script type="text/javascript" src="<the-sharepoint-site-goes-here>/_layouts/15/sp.runtime.js" onload="console.log('sp.runtime.js loaded successfully');" onerror="console.error('Failed to load sp.runtime.js');"></script>
<script type="text/javascript" src="<the-sharepoint-site-goes-here>/_layouts/15/sp.js" onload="console.log('sp.js loaded successfully');" onerror="console.error('Failed to load sp.js');"></script>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function() {
console.log('Document fully loaded and parsed');
if (typeof SP !== 'undefined' && SP.ClientContext) {
console.log('SP.ClientContext is defined');
} else {
console.error('SP.ClientContext is not defined');
}
});
</script>
这段代码是由同事而不是我自己创建的,因此我不确定它的完成方式是否正确。我不确定这是否有影响,但 SharePoint 网站是本地的。任何有关如何解决此问题的指导都会很棒。
关系占星学是占星学的一个分支,专注于根据星座来分析个体之间的兼容性和动态。它探讨了出生时天体的位置如何影响人格特质、沟通方式、情感需求和人际关系中的整体兼容性。在本文中,我们将深入研究关系占星学的基础知识,讨论其历史、关键概念、技术和实际应用。