Office365 如何对网站内容隐藏SharePoint文档库?

Office365 如何对网站内容隐藏SharePoint文档库?,office365,sharepoint-online,Office365,Sharepoint Online,我工作的一个要求是,使用JSOM获得SharePoint站点中存在的所有文档库的列表。现在我必须对所有用户隐藏这些文档库,仅供参考,这不是基于权限的。所有用户的行为都是一致的 我使用下面的代码来获取所有库的列表 <script type="text/javascript"> var currentcontext = null; var currentweb = null; ExecuteOrDelayUntilScriptLoaded(GetLibrarie

我工作的一个要求是,使用JSOM获得SharePoint站点中存在的所有文档库的列表。现在我必须对所有用户隐藏这些文档库,仅供参考,这不是基于权限的。所有用户的行为都是一致的

我使用下面的代码来获取所有库的列表

<script type="text/javascript">

    var currentcontext = null;
    var currentweb = null;
    ExecuteOrDelayUntilScriptLoaded(GetLibrariesOnly, "sp.js");

    //to get the list of document libraries.
    function GetLibrariesOnly()
    {
    currentcontext = new SP.ClientContext.get_current();
    currentweb = currentcontext.get_web();
    this.listCollection = currentweb.get_lists();
    listCollection.set_hidden(true);
    currentcontext.load(listCollection);
    currentcontext.executeQueryAsync(Function.createDelegate(this, this.ExecuteOnSuccess),
    Function.createDelegate(this, this.ExecuteOnFailure));
    }
    function ExecuteOnSuccess(sender, args) {
    var listEnumerator = this.listCollection.getEnumerator();
       var allLibs ="";
       while (listEnumerator.moveNext()) 
       {
                var list = listEnumerator.get_current();
                if(list.get_baseTemplate() == '101')
                {
                 allLibs+= list.get_title() + '\n';                
                }
       }
        alert("All Libraries:" + '\n' + allLibs);
     }
    function ExecuteOnFailure(sender, args) {
    alert("Error in Getting Libraries");
    }

var currentcontext=null;
var currentweb=null;
ExecuteOrderLayUntillScriptLoaded(GetLibrary仅为“sp.js”);
//获取文档库列表。
函数getLibrarySonly()
{
currentcontext=new SP.ClientContext.get_current();
currentweb=currentcontext.get_web();
this.listCollection=currentweb.get_lists();
listCollection.set_hidden(true);
加载(listCollection);
currentcontext.executeQueryAsync(Function.createDelegate(this,this.ExecuteOnSuccess),
Function.createDelegate(this,this.ExecuteOnFailure));
}
函数ExecuteOnSuccess(发送方,参数){
var listEnumerator=this.listCollection.getEnumerator();
var allLibs=“”;
while(listEnumerator.moveNext())
{
var list=listEnumerator.get_current();
if(list.get_baseTemplate()==“101”)
{
allLibs+=list.get_title()++'\n';
}
}
警报(“所有库:”+'\n'+allLibs);
}
函数ExecuteOnFailure(发送方,参数){
警报(“获取库时出错”);
}
除了警报中显示的文档和网站资源库之外,我应该添加/更改什么来隐藏库

我想隐藏除站点资源和默认文档库之外的所有库。请看下面的截图。我正在使用SharePoint online/Office 365。提前谢谢


以下css将隐藏所有互动程序站点内容:

<style>
.ms-vl-apptile.ms-vl-apptilehover {display :none;}
</style>

.ms-vl-apptile.ms-vl-apptilehover{display:none;}
以下javascript将帮助显示所需的分幅,这将适用于所有分幅:

<script>
$('a[title="Documents"]').parent('div').parent('div').parent('div').parent('div').css("display","inline-block");
$('a[title="Site Assets"]').parent('div').parent('div').parent('div').parent('div').css("display","inline-block");
$('a[title="Style Library"]').parent('div').parent('div').parent('div').parent('div').css("display","inline-block");
</script>

$('a[title=“Documents”]”)。父('div')。父('div')。父('div')。父('div')。css(“显示”,“内联块”);
$('a[title=“Site Assets”]”)。父项('div')。父项('div')。父项('div')。父项('div')。css(“显示”、“内联块”);
$('a[title=“Style Library”]')。父('div')。父('div')。父('div')。父('div')。css(“显示”,“内联块”);

注意:您必须在母版页中添加此javascriptcss参考或js和css代码本身别忘了包括jquery引用。

只是想确认一下,当你说tiles时,你是指文档库吗?正确的不仅仅是文档库,还有“站点页面”、“样式库”、“站点资产”、“文档”等。所以基本上使用css隐藏所有分幅,并使用jQuery仅显示需要的分幅。谢谢Gopal。我可以改变这种做法吗?与最初一样,当“显示”设置为“无”时,代码将隐藏所有内容。我可以先将显示设置为内联块,这样所有内容都可以在前面看到,然后在脚本标记下的代码中,我可以将显示设置为“无”以隐藏选定的库,这样可以吗?是的,当然可以,但当页面加载时,文档库会闪烁,然后消失。如果您觉得有帮助,请不要忘记标记为“答案”。此外,我想问的另一件事是,即使瓷砖会被隐藏,如果用户知道url,它仍然可以访问。如果我们可以让他们在库隐藏时不访问库,或者在库不隐藏时不访问库,那么我们也应该允许通过url访问用户。