优化SharePoint任务列表折叠脚本:解决同步MS Project后的展开问题
我之前也碰到过和你完全一样的糟心事——和MS Project同步后的SharePoint 2013任务列表,默认会把所有层级的任务(包括子任务、子子任务)全部展开,任务量一旦到几百上千条,页面卡到根本没法操作。后来我折腾出一段JavaScript脚本完美解决了这个问题,分享给你:
<script type="text/javascript"> jQuery(document).ready(function($) { (function($){ function doCollapseTaskList() { // 触发所有任务层级的折叠按钮点击事件 $(".ms-commentcollapse-icon").click(); // 解绑事件,避免重复执行造成的异常 $(document).off("click", ".ms-commentcollapse-icon"); } // 页面加载完成后立即执行折叠逻辑 doCollapseTaskList(); // 监听DOM变化,兼容异步加载的任务内容 var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.addedNodes.length > 0) { doCollapseTaskList(); } }); }); // 监听任务列表表格的DOM变更 observer.observe(document.getElementById("onetidDoclibViewTable"), { childList: true, subtree: true }); })(jQuery); }); </script>
使用步骤:
- 把这段脚本添加到任务列表页面的内容编辑器Web部件即可:
- 打开目标任务列表页面,点击顶部的「编辑页面」
- 在页面合适位置添加一个「内容编辑器」Web部件
- 编辑该Web部件,点击「编辑HTML源」,粘贴上述代码
- 保存Web部件和页面,刷新后所有任务就会默认折叠起来了
脚本核心逻辑是:页面加载完成后自动触发所有任务的折叠按钮,同时监听任务列表的DOM变化,确保异步加载的任务也能被正确折叠。
内容的提问来源于stack exchange,提问作者Daniel Hjertholm
相关产品推荐
相关产品推荐

