【发布时间】:2019-01-21 05:43:33
【问题描述】:
我正在使用脚本编辑器 Web 部件通过 JavaScript 将数据插入到 SharePoint 2013 列表中。当我在脚本编辑器中使用以下代码时,每次页面加载时都会得到我想要的结果:
<script>
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {});
var context = SP.ClientContext.get_current();
var list = context.get_web().get_lists().getByTitle('my_list');
var itemInfo = new SP.ListItemCreationInformation();
this.oListItem = list.addItem(itemInfo);
oListItem.set_item('Title', 'My title testing');
oListItem.update();
context.load(oListItem);
</script>
页面加载后,我在 my_list 中获取了新项目,其中 My title testing 在 Title 列中。
但是,我希望在用户单击按钮时发生这种情况。所以我创建了一个带有 onclick 属性的按钮,该属性指向我已将上述代码放入的函数,但它不起作用 - 没有任何反应。这是我放置按钮并将脚本包装在函数中后脚本编辑器的内容:
<html>
<button type="button" onclick="addToList()">Submit</button>
</html>
<script>
function addToList() {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {});
var context = SP.ClientContext.get_current();
var list = context.get_web().get_lists().getByTitle('my_list');
var itemInfo = new SP.ListItemCreationInformation();
this.oListItem = list.addItem(itemInfo);
oListItem.set_item('Title', 'My title testing');
oListItem.update();
context.load(oListItem);
}
</script>
我不知道我做错了什么......
非常感谢!
【问题讨论】:
-
查看控制台中是否出现任何 javascript 错误。也许该函数无法访问某些变量。
-
不,一切似乎都井井有条...如果代码超出了 onclick 函数,则该代码可以工作。也许这与 this.oListItem 有关?我想不通。
-
尝试在每个调试命令后加上
cosole.log,以查看执行停止的位置。 -
仍然没有,没有错误。我什至在两种情况下都记录了 oItemList,无论是否单击按钮,它都是同一个对象。我会继续挖掘
标签: javascript sharepoint-2013