排序或搜索列表时自定义消失

Customizations disapear when sorting or searching list

这是我目前的设置。 我有一个共享点站点,我在其中加载了一个 javascript 文件,该文件修改了默认列表的外观(我用警报替换了代码...):

_spBodyOnLoadFunctionNames.push("test");

 function test() { 
   alert();
 }

然后我添加了一个脚本编辑器 Web 应用程序,其中包含以下内容:

<script type="text/javascript" language="javascript" src="/sites/path/script.js">
</script>

因此,当我加载包含该列表的页面时,会发送一个警报。如果我通过单击 header 对列进行排序,则会加载原始 html,然后什么也没有发生,因此会覆盖我的自定义设置。

我对这个问题的理解是,sharepoint 使用的技术基本上只更新 html 的部分内容,而不是漏洞页面。由于脚本在页面加载时设置为 运行,因此没有任何反应。

如何设置页面,以便每当列表 html 更改时,javascript 运行 都会修改默认外观?

我读了很多关于这个问题的资料,但我实际上不知道如何实施任何一个...你们能给我指出正确的方向吗?我对 Sharepoint 的体验几乎为零。

谢谢!

在自定义 SharePoint 列表视图时,最好指定 SharePoint 版本,因为呈现系统因版本而异,例如在 SharePoint 2013 中,默认 呈现系统是所谓的 客户端渲染 。跟随。例如,SharePoint 2013 Client Side Rendering: List Views 文章了解更多详情。

假设是 SharePoint 2013 版本,以下示例演示了如何将自定义应用于列表(基本上是您示例的修改版本):

SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
  OnPostRender: 
    function() { console.log('OnPostRender'); }
});

Note: OnPostRender event is triggered every time once list view is rendered