我正在创建一个我想要执行的SharePoint应用程序。
所有这些都应该只使用JavaScript来完成。
有人知道该怎么做吗?
由于 user988917
答案 0 :(得分:1)
要获取当前母版页,请向后续终点发出GET请求
/_api/Web?$select=CustomMasterUrl,MasterUrl
要更改当前母版页,
function MastePageChange() {
var clientcontext;
var cweb;
var customMasterURL = '/_catalogs/masterpage/NewMasterPage.master';
clientcontext = new SP.ClientContext.get_current();
cweb = clientcontext.get_web();
cweb.set_customMasterUrl(masterPageUrl);
cweb.set_masterUrl(masterPageUrl);
cweb.update();
clientcontext.executeQueryAsync(function() {
alert("Master Page has been changed successfully \n" + customMasterURL);
}, function(sender, args) {
alert("Error: " + args.get_message());
});
}
答案 1 :(得分:0)
我没有在JS中尝试这个,但通常有相同的方法,所以看看服务器端代码有帮助。 http://blog.vegaitsourcing.rs/2008/10/programmatically-uploading-master-pages.html以下是使用JS上传文件的示例(仅适用于我认为的HTML5浏览器)http://msdn.microsoft.com/en-us/library/jj163201.aspx
棘手的事情是文件操作(注入JS)...我没有看到一个纯粹的方法来完全从JS做到这一点,你可能需要一些服务器端代码来破解文件和注入新代码,保存然后再上传。
答案 2 :(得分:0)
要修改主页,我建议您查看这两个资源。
首先,一篇解释如何应用母版页的博客文章:
arichterwork.blogspot.com/2008/03/programmatically-inherit-master-page.html
E.g。 web.MasterUrl = "/_layouts/custom.master"
接下来是关于Core对象的SharePoint JavaScript API参考,在这种情况下是Web:
msdn.microsoft.com/EN-US/library/office/jj245288.aspx
您可以看到masterUrl和customMasterUrl都可用R / W.
最后,你需要做一些基本的文件操作。以下是MSDN资源:
msdn.microsoft.com/en-us/library/jj163201.aspx#BasicOps_FileTasks
还有两个挑战。第一个是关于权限:更新母版库是一项高权限操作。另一个风险更大的挑战是你将JS注入页面,并且可以恶意使用JS。
如果您计划将此方法与SharePoint应用程序一起使用,我会考虑寻找替代方法。不允许这样的脚本注入。