使用 JQuery 制作的 SharePoint 2013 超链接在过滤后停止工作

Posted

技术标签:

【中文标题】使用 JQuery 制作的 SharePoint 2013 超链接在过滤后停止工作【英文标题】:SharePoint 2013 Hyperlinks Made Using J Query Stop Working After Filtering 【发布时间】:2021-09-11 02:58:07 【问题描述】:

我找到了帖子:sharepoint with JQuery - stops working when click on column filter,但无法正常工作。

我想在 SharePoint 列表的单元格中将 html 显示为超链接。在有人尝试过滤列表之前,我的代码一直有效——元素刷新以在 SharePoint 列表中显示搜索结果,并且链接恢复为 HTML 代码,而不是可点击的链接。

我无权访问母版页或 SharePoint Designer。我唯一的选择是 OOB Web 部件。

这是我正在使用的代码:

<script src="https://code.jquery.com/jquery-3.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() 
    var textholder = "";
    $("td.ms-vb2:contains('<a href=')").each(function() 
        textholder = $(this).text();
        $(this).html(textholder);
    );
)
</script>

我可以添加什么来使代码在刷新时工作?我是一个新手,并且希望将解决方案插入代码中,因为我不知道我会在哪里输入命令。谢谢!

【问题讨论】:

【参考方案1】:

这是我用来解决问题的代码(输入到脚本编辑器 Web 部件中):

<script src="https://code.jquery.com/jquery-3.2.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
(function () 
        if (typeof SPClientTemplates === 'undefined')
        return;
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides(
        OnPostRender: [
          function (ctx)  DoStuff(ctx); ,
        ]
      );
      )();

     function DoStuff(ctx) 
    var textholder = "";
    $("td.ms-vb2:contains('<a href=')").each(function() 
        textholder = $(this).text();
        $(this).html(textholder);
    );     
  $(document).ready(function()
       var textholder = "";
    $("td.ms-vb2:contains('<a href=')").each(function() 
        textholder = $(this).text();
        $(this).html(textholder);
    ); );
</script>

【讨论】:

以上是关于使用 JQuery 制作的 SharePoint 2013 超链接在过滤后停止工作的主要内容,如果未能解决你的问题,请参考以下文章

Jquery 在 Sharepoint 中不工作

Sharepoint + Jquery,在该页面上添加活动类到导航

如何在SharePoint集成模式下用ReportBuilder制作报表

JavaScript 使用JQuery更改SharePoint 2010中的默认搜索框文本

使用JQuery更改SharePoint 2010中的默认搜索框文本

Sharepoint 2010 在 jquery/javascript 中捕获 webpart 刷新