首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将SharePoint链接列表默认为在新窗口中打开?

SharePoint链接列表默认为在新窗口中打开是一种常见的行为,该行为可以通过SharePoint配置和代码实现。以下为两种方式:

  1. SharePoint配置方式:
    • 打开SharePoint管理中心的网站设置
    • 在左侧菜单栏中找到“页面和功能”
    • 在搜索框中输入列表名称进行搜索
    • 选中需要设置链接列表的项目
    • 在“页面属性”中,勾选“在新窗口中打开网页以支持链接列表”
  2. 通过JavaScript代码修改SharePoint链接列表的属性: 对于SharePoint 2013及以后的版本,SharePoint提供了一个名为“SP.UI.CoreNavigation.js”的文件,该文件提供了一种修改SharePoint链接列表属性的方法。通过该方法,您可以启用或禁用“在新窗口中打开链接列表”的功能:
  • 首先,确认SharePoint站点中已经安装并启用了“SP.UI.CoreNavigation.js”文件。该文件的路径通常在以下路径下:_Layouts_Shared_SiteCollections_Site_Features_CoreWebParts_Navigation_Web_ListMenu,如果文件未安装,可以通过Microsoft 365 Admin Center或SharePoint Online Admin Center上传并启用该文件。
  • 在<head>部分添加以下JavaScript代码:
代码语言:txt
复制
  ```javascript
代码语言:txt
复制
  function GetListUrl(ctx) {
代码语言:txt
复制
    var ctxUri = new SP.ClientContext(ctx.ServerRelativeUrl);
代码语言:txt
复制
    var list = ctxUri.GetListItemAllFields(0, 1000);
代码语言:txt
复制
    var listSiteUrl = list.GetSite().Url;
代码语言:txt
复制
    var listUrl = list.EnsureExists();
代码语言:txt
复制
    var fullListUrl = listUrl + $":{ctxUri.NamespaceURI}?Web&Lists&ID={ctxUri.List.ID}&RootFolder=[URL](/{ctxUri.ServerRelativeUrl}/)Lists/{ctxUri.List.ID}(ViewList)&IsDlg=1";
代码语言:txt
复制
    // Return the list view (url) as the default target to ensure that new windows are opened when a link to the list is clicked
代码语言:txt
复制
    return fullListUrl;
代码语言:txt
复制
  }
代码语言:txt
复制
  // Apply the 'target' change to the list view(s) used by SP.UI.CoreNavigation.js
代码语言:txt
复制
  function SetListUrl(ctx, target) {
代码语言:txt
复制
    var selector = 'ul[' + ctx.List.Title + ']:first li a';
代码语言:txt
复制
    var elements = document.querySelectorAll(selector);
代码语言:txt
复制
    elements.forEach(function (element) {
代码语言:txt
复制
      SP.UI.CoreNavigation.LinkUrl(element, { LinkUrlBehavior: SP.UI.CoreNavigation.Enums.LinkUrlBehavior.NewWindow });
代码语言:txt
复制
    })
代码语言:txt
复制
  }
代码语言:txt
复制
  // Load the list view(s) when the document(s) in the page are loaded
代码语言:txt
复制
  function LoadListView() {
代码语言:txt
复制
    var viewsToLoad = document.querySelectorAll('ul[SharePointSiteName]:not([SiteRelativeUrl]) li[Url]');
代码语言:txt
复制
    viewsToLoad.forEach(function (view) {
代码语言:txt
复制
      SetListUrl(view, GetListUrl(view));
代码语言:txt
复制
    })
代码语言:txt
复制
  }
代码语言:txt
复制
  // Initialize the 'LoadListView' function in the document(s) where SharePoint list views are rendered
代码语言:txt
复制
  if (!document.body.classList.contains("my-custom-page")) {
代码语言:txt
复制
    SP.SOD.executeFunc('sp.js', 'SP.UI.CoreNavigation.js', LoadListView);
代码语言:txt
复制
  }
代码语言:txt
复制
  ```
  • 在代码中,将ctxUri.ServerRelativeUrl替换为实际要访问的SharePoint站点Url。

注意:SharePoint版本的升级可能会影响到代码的兼容性,建议使用最新的SharePoint版本进行测试。同时,需要注意的是,修改SharePoint配置或代码可能会影响SharePoint站点的安全性和稳定性,操作前请谨慎评估风险。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券