Project Web App のタスク リボンから [タスクの完了をマーク] ボタンを削除して、ユーザーがクリックできないようにしたいと考えています。JavaScript はページが読み込まれるまで待機する必要があるため、カスタム JavaScript Web パーツを追加して、200 ミリ秒の遅延後にボタンを非表示にすることに成功しました。ただし、これはユーザー エクスペリエンスの低下につながるだけでなく、ページが 200 ミリ秒で完全に読み込まれることが保証されないため、ユーザーがボタンを見て操作できる可能性が残ります。これがその JavaScript です。
<html>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("li.ms-cui-tt a:eq(1)").trigger("click");
});
window.onload = function(){
setTimeout(function(){
document.getElementById('Ribbon.ContextualTabs.MyWork.Home.Tasks.MarkComplete-Large').style.display = 'none';
}, 200);
};
</script>
</body>
</html>
遅延を使用せずに目的の効果を達成する方法はありますか?