我有一个与MS Project文件同步的SharePoint 2013任务列表。默认情况下,将展开包含所有任务,子任务和子子任务的整个任务列表。当列表中有几百或几千个任务时,这几乎没有用处。通过以下代码片段找到here我已经能够使任务列表崩溃:
<script type="text/javascript">
jQuery(document).ready(function($) {
(function($){
function doCollapseTaskList() {
$(".ms-commentcollapse-iconouter > img").each(function(){
$(this).click();
});
}
$(function() {
SP.SOD.executeOrDelayUntilScriptLoaded(function () {
if (typeof asyncDeltaManager != "undefined")
asyncDeltaManager.add_endRequest(doCollapseTaskList);
else doCollapseTaskList();
},'SP.js');
});
})(jQuery);
});
</script>
但每当我单击任务旁边的小复选框时,列表会刷新,这次,它会再次展开。我不明白为什么脚本在refres之后不会崩溃列表。如何在刷新后运行脚本?或者有没有办法在检查checbox后阻止刷新(当然仍然保存了该检查)。
以下是我的测试结果[使用Office 365 / SharePoint Online]。使用按钮和/或以下浏览器之一尝试复选框(如果可能)将此脚本添加到内容编辑器Web部件。我似乎在运行它时遇到了问题,但是一旦它运行起来,我就检查了我安装的所有四个浏览器。
MS Edge 40.15063.674.0 - 不会自动运行脚本。我添加了一个按钮,它将折叠整个列表,然后展开整个列表。我一直按下按钮,它不断扩展/折叠列表
MS IE 11.1563.15063.0 - 运行列表已折叠(有效!)。按下按钮什么都不做。
FireFox Quantum 64位(无版本#) - 运行列表折叠(它可以工作!)。按按钮可展开列表。再次按下它将选择列表中的最后一个折叠/展开项目。
谷歌浏览器72.0.3626.109 - 不会自动运行脚本。按下按钮会折叠列表。再次按下按钮不会执行任何操作。
没有安装或测试过其他浏览器。
按钮标记添加:
<input type="button" value="Collapse Task List" onclick="doCollapseTaskList()">
似乎脚本是为IE编写的。看起来有人需要修改它以支持多个浏览器。