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



_spBodyOnLoadFunctionNames.push("test");

 function test() {
   alert();
 }





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



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





因此,当我加载包含列表的页面时,将发送警报。如果我通过单击标题对列进行排序,则会加载原始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'); }
});



  注意:每次呈现列表视图时,都会触发OnPostRender事件

关于javascript - 排序或搜索列表时自定义消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32364653/

10-14 21:17
查看更多