Office365 如何在文档库登录页上明确显示站点名称?

Office365 如何在文档库登录页上明确显示站点名称?,office365,sharepoint-online,Office365,Sharepoint Online,我正在从事的一个项目是,我要求在文档库页面上显示站点名称,以便用户了解他/她正在从事的站点 此外,我希望网站名称仅显示在文档库页面级别。我相信,如果这是在母版页级别通过利用breadcrumb实现的,那么它将反映在导航中的任何地方,因此希望确保它只反映在文档库页面上 关于如何实现这一点有什么想法吗?我正在使用Office 365/SharePoint online。提前感谢。有几个选项,但大多数选项会使用如下模式将文本添加到页面的跨距中: document.querySelector("#Del

我正在从事的一个项目是,我要求在文档库页面上显示站点名称,以便用户了解他/她正在从事的站点

此外,我希望网站名称仅显示在文档库页面级别。我相信,如果这是在母版页级别通过利用breadcrumb实现的,那么它将反映在导航中的任何地方,因此希望确保它只反映在文档库页面上


关于如何实现这一点有什么想法吗?我正在使用Office 365/SharePoint online。提前感谢。

有几个选项,但大多数选项会使用如下模式将文本添加到页面的跨距中:

document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea span").insertAdjacentHTML("beforeBegin","Your Site Name - ")
您可以让它从上下文(ctx.SiteTitle)中提取站点名称:

完整脚本块:

<script>
function TTNAddSiteTitle() {
  document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea").insertAdjacentHTML("beforeBegin",ctx.SiteTitle + " - ");
}
_spBodyOnLoadFunctionNames.push("TTNAddSiteTitle");
</script>

函数TTNAddSiteTitle(){
document.querySelector(“#DeltaPlaceHolderPageTitleInTitleArea”).insertAdjacentHTML(“BeforeBeagin”,ctx.SiteTitle+“-”);
}
_spBodyOnLoadFunctionNames.push(“TTNAddSiteTitle”);
现在的问题是你把剧本放在哪里

  • 在查看页面中。使用SharePoint Designer编辑每个查看页面,单击“高级模式”按钮,并在“”之后添加上面的代码
  • 在内容编辑器中,添加到每个视图页面的Web部件。虽然这是最简单的方法,但问题在于,在用户单击列表中的某个项目之前,页面不会显示文件和库功能区。(页面会看到两个web部件,在单击其中一个部件之前不知道要显示哪个功能区。)
  • 在母版页中,使用一些代码检查它是否是一个库:if(ctx.listTemplate==“101”{…}。但是对于现有站点,这将需要更新每个站点的母版页
母版页的可能代码

<script>
function TTNAddSiteTitle() {
  if(ctx.listTemplate == "101" ) {
    document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea").insertAdjacentHTML("beforeBegin",ctx.SiteTitle + " - ");
  }
}
_spBodyOnLoadFunctionNames.push("TTNAddSiteTitle");
</script>

函数TTNAddSiteTitle(){
如果(ctx.listTemplate==“101”){
document.querySelector(“#DeltaPlaceHolderPageTitleInTitleArea”).insertAdjacentHTML(“BeforeBeagin”,ctx.SiteTitle+“-”);
}
}
_spBodyOnLoadFunctionNames.push(“TTNAddSiteTitle”);

要添加的代码,用于更新未显示站点标题的每个页面。(仅限Classic UI SP 2013、2016和联机)。与上一示例相比,此示例多了一条IF语句,用于检查站点标题是否已显示

<script>
function TTNAddSiteTitle() {

  if( document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea").innerText.trimRight() != ctx.SiteTitle) {

    // if(ctx.listTemplate == "101" ) {
      document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea").insertAdjacentHTML("beforeBegin",ctx.SiteTitle + " - ");
    // }
  }
}
_spBodyOnLoadFunctionNames.push("TTNAddSiteTitle");
</script>

函数TTNAddSiteTitle(){
if(document.querySelector(“#DeltaPlaceHolderPageTitleInTitleArea”).innerText.trimRight()!=ctx.SiteTitle){
//如果(ctx.listTemplate==“101”){
document.querySelector(“#DeltaPlaceHolderPageTitleInTitleArea”).insertAdjacentHTML(“BeforeBeagin”,ctx.SiteTitle+“-”);
// }
}
}
_spBodyOnLoadFunctionNames.push(“TTNAddSiteTitle”);

Modern UI(站点名称应该已经存在)还是经典用户界面?嗨,迈克,是的,它在现代用户界面中,但是如何让它在经典用户界面中工作?谢谢迈克,这很好,谢谢你提供的详细信息。有一个问题,如果我点击功能区中的“库设置”转到“库设置”页面,网站名称就不会出现在那里。我们能让它也出现在“库设置”页面上吗ngs页面。因此,当前它类似于文档库名称->设置--更改为-->>>>站点名称->文档库名称->设置。?如果您在prem SharePoint上使用,可以将上述脚本添加到_layouts/15/listedit.aspx页面。由于您使用的是SharePoint Online,无法直接编辑_layouts页面,因此需要将其添加到网站的主页。注意到一件事,我把代码放在主页上,它运行良好,网站名称出现在文档库页面上,但在任何网站的登录页上,网站名称出现两次,例如,如果网站名称是Brick,那么它将在登录页上显示为Brick Brick。我只希望此功能在e文档库页面和列表,有办法解决吗?谢谢。有几件事…网站标题已经在主页上了。这就是为什么你会看到两个。母版页代码中的IF语句可以解决这一问题。最初你说你想要一个文档库,是不是需要每个列表和库,网站中的每个页面???你可以吗为我们提供一个更好的列表,列出您想查看的位置,或者列出您不想查看的位置?当然。是的,现在我只希望站点名称显示在文档库页面上(这很好),而不是站点的登录页面上(因为登录页面已经显示站点标题)。对于未来的范围,我想知道这是否也可以在SharePoint列表页上实现。谢谢。不幸的是,在更新母版页中提到的代码后,我仍然看到站点标题在登录页上显示了两次。我将其向后改了…更改==到!=。我更新了上面的示例。是的,我没有注意到在之前,这很有效,非常感谢Mike。Mike,如果我想在文档库页面之外的一个创建的自定义列表上显示站点标题(这不是一个要求,而是为了获取信息)。我尝试调整if条件并将其替换为if(ctx.listTemplate==“101”&&ctx.listTemplate==“100”)但这不起作用,它还删除了文档库页面上的站点标题。谢谢。更改为&&to | |。即从和到或。
<script>
function TTNAddSiteTitle() {

  if( document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea").innerText.trimRight() != ctx.SiteTitle) {

    // if(ctx.listTemplate == "101" ) {
      document.querySelector("#DeltaPlaceHolderPageTitleInTitleArea").insertAdjacentHTML("beforeBegin",ctx.SiteTitle + " - ");
    // }
  }
}
_spBodyOnLoadFunctionNames.push("TTNAddSiteTitle");
</script>