我已经在我们的Sharepoint页面上创建了一个代码,该代码将列表中的所选项目带到包含电子邮件的特定字段并在电子邮件客户端中打开。但是目前只需要变量[0]
中selectedItemId
可以看到的第一个对象。我然后尝试创建一个循环,所以我可以所有的对象而不是第一个,如下所示。但是循环似乎不起作用,它返回以下错误:
Uncaught SyntaxError: Unexpected token )
我如何创建这样的循环?
仅检索第一个对象(正常工作):
function GetSelectedItemsID() {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function(){
var listGuid = SP.ListOperation.Selection.getSelectedList()
//in this example only first selected item is retrieved
var selectedItemId = SP.ListOperation.Selection.getSelectedItems()[0].id
var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var lists = web.get_lists();
var list = lists.getById(listGuid);
var item = list.getItemById(selectedItemId);
ctx.load(item);
ctx.executeQueryAsync(function() {
var title = item.get_item("E_x002d_Mail_x0020_1");
var email = "mailto:" + title + ";";
window.location.href = email;
}, function(){alert("error");});
});
}
我尝试了什么(不起作用)
<script type="text/javascript">
function GetSelectedItemsID() {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function(){
var listGuid = SP.ListOperation.Selection.getSelectedList();
//in this example only first selected item is retrieved
var allSelectedItems = SP.ListOperation.Selection.getSelectedItems();
var item;
var ItemEmails='';
for (item in allSelectedItems){
var selectedItemId = allSelectedItems[item].id;
var ctx = SP.ClientContext.get_current();
var web = ctx.get_web();
var lists = web.get_lists();
var list = lists.getById(listGuid);
var item = list.getItemById(selectedItemId);
ctx.load(item);
ctx.executeQueryAsync(function() {
var title = item.get_item("E_x002d_Mail_x0020_1");
ItemEmails += "mailto:" + title + ";";
}, function(){alert("error");
});
window.location.href = ItemEmails;
}
}
}
</script>