SharePointのリストをクリップボードにコピーする
SharePointのリストは、選択しようとするとドラッグしようとしてしまったり、リスト項目の選択操作になってしまったりして、単純に文字列をクリップボードにコピーしたい などといったことができません。
こんな時はWebコンソールの出番です。
- 該当のリストを表示する
- クリップボードにコピーしたい項目のみを表示したい順番で表示するビューを作る
- Webコンソールを開く
- コンソールに以下のコードを入力する
- コンソールに表示された文字列をクリップボードにコピーする
let a = "";
document.querySelector(".ms-DetailsList-contentWrapper").querySelectorAll(".ms-List-cell").forEach((e) => {
e.querySelectorAll(".ms-DetailsRow-cell").forEach((l) => {
a += !l.classList.contains("ms-DetailsRow-cellCheck") && l.textContent != "" ? l.textContent.trim() + "\t" : "";
});
a += "\n";
});
console.log(a);
2019/07/14 SBC://5
2019/07/17 Facelook Part.8
2019/07/19 もくもく会@にしとも広場
やっていること
ms-DetailsList-contentWrapper
というのは、SharePointのリストテーブルの「データ部分のみ」を囲んでいるdivのクラスです。HTMLのテーブルでいうtbodyみたいなものです。
この要素内のms-List-cell
クラスを取得すると、すべての行が、その下にある`ms-DetailsRow-cell
というクラスを取得するとその中の各セルが取得できます。
そのなかの「テキスト部分だけ」を出力し組み合わせていくことで、リストのテキスト部分のみを抽出できます。
ただし、このままだと各行のチェックボックスまで抽出してしまうため、チェックボックスセルに付いているms-DetailsRow-cellCheck
というクラスを検出して、それを出力から除外します。
ブックマークレットにしました
比較的頻繁に使うので、ブックマークレットにしました。ついでに以下の機能を追加しています
- リスト中のどの項目もチェックしていない場合は、すべての項目をコピー
- リスト中のいずれかの項目がチェックされていたら、それらの項目をコピー
また、コピーできる文章は開発者モードのコンソールではなく、新しいウィンドウに表示されますので、全選択してコピーします。
javascript:a="";f=null==document.querySelector(".ms-DetailsRow-cellCheck div:first-child[aria-checked=true]");document.querySelector(".ms-DetailsList-contentWrapper").querySelectorAll(".ms-List-cell").forEach(function(c){if("true"===c.querySelector(".ms-DetailsRow-cellCheck div:first-child").getAttribute("aria-checked").toLowerCase()||f)c.querySelectorAll(".ms-DetailsRow-cell").forEach(function(b){a+=b.classList.contains("ms-DetailsRow-cellCheck")||""==b.textContent?"":b.textContent.trim()+"\t"}),a+="\n"}); window.open("about:blank").document.write("<pre>"+a+"</pre>");
コンパイラはいつものを使いました。コンパイル前のソースはgistに公開しています。
Author And Source
この問題について(SharePointのリストをクリップボードにコピーする), 我々は、より多くの情報をここで見つけました https://qiita.com/TakamiChie/items/e7c8e7ed5d37949298cd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .