好的,为了解决这个问题,您需要在您的站点上安装 jQuery 1.7.x+ 和SPServices jQuery 库版本 0.7.2 或更高版本。
使用GetListItems作为来自 SPServices 的操作。
我在 Pages 目录中搜索页面,所以 listName 是“Pages”。
CAML 视图字段基本上是 PublishingContactEmail 和 PublishingContact 的列。我发现那些使用u2u 的 CAML builder 版本 4.0.0.0
ows_ 变量可以在 firebug 的 POST 对象的 xml 视图中找到。
ows_PublishingContact 返回联系人信息的长字符串。幸运的是,电子邮件地址被 包围,#
,这使得将其拆分为一个数组,然后搜索电子邮件 @ 很容易,但这就是存在的原因。
function get_page_contact_email() {
var thisPageID = _spPageContextInfo.pageItemId;
var e;
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Pages",
CAMLViewFields: "<ViewFields><FieldRef Name='PublishingContactEmail' /><FieldRef Name='PublishingContact' /></ViewFields>",
CAMLQueryOptions: "<QueryOptions><ExpandUserField>True</ExpandUserField></QueryOptions>",
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function () {
if (thisPageID == $(this).attr("ows_ID")) {
if ($(this).attr("ows_PublishingContactEmail")) { // if page email is set
e = $(this).attr("ows_PublishingContactEmail");
} else if ($(this).attr("ows_PublishingContact")) { //otherwise use contact info
var contact = $(this).attr("ows_PublishingContact").split(",#");
for (var c = 0; c < contact.length; c++) {
if (contact[c].indexOf("@") != -1) {
e = contact[c];
}
}
} else { //or nothing is set.
e = false;
}
}
});
}
});
return e;
}