この記事は、富士通ソーシアルサイエンスラボラトリ Advent Calendar 2019の17日目の記事です。
ここに書かれている内容はすべてあくまでも私の個人の活動であり、所属組織を代表するものではありません。
BOX のフォルダの階層構造を含めたフルパスを取得したい!!!
普通に選択してコピーしようとすると ・・・
がそのまま ・・・
とコピーされてしまう!
フォルダ名が、上記のようになっている場合、下記のように取得したい!!!!
すべてのファイル > フォルダ1 > フォルダ2 > フォルダ3 > フォルダ4
取得方法
Chrome のDevToolsを開き、フォルダ階層を取得できそうなScriptタグ内の変数 Box.postStreamData
を見つけたので、加工を行う。
Box.postStreamData[Object.keys(Box.postStreamData)[0]].folder.path.map(i => i.name).join(" > ")
ブックマークレット用のソース
WebページのタイトルとURLをワンクリックでコピーするBookmarklet を参考にさせていただきました。
var global = window;
global.COPY_TO_CLIPBOARD = global.COPY_TO_CLIPBOARD || {};
global.COPY_TO_CLIPBOARD.getBoxDocumentPWD = function () {
return Box.postStreamData[Object.keys(Box.postStreamData)[0]].folder.path.map(i => i.name).join(" > ");
};
global.COPY_TO_CLIPBOARD.copyToClipboard = function() {
var copyFrom = document.createElement("textarea");
copyFrom.textContent = this.getBoxDocumentPWD();
var bodyElm = document.getElementsByTagName("body")[0];
bodyElm.appendChild(copyFrom);
copyFrom.select();
var retVal = document.execCommand('copy');
bodyElm.removeChild(copyFrom);
return retVal;
};
global.COPY_TO_CLIPBOARD.copyToClipboard();
ブックマークレットに登録する
ブックマークレットに登録する方法はこちらの記事を参考にしてください。
javascript:var global = window;global.COPY_TO_CLIPBOARD = global.COPY_TO_CLIPBOARD || {};global.COPY_TO_CLIPBOARD.getBoxDocumentPWD = function () { return Box.postStreamData[Object.keys(Box.postStreamData)[0]].folder.path.map(i => i.name).join(" > ");};global.COPY_TO_CLIPBOARD.copyToClipboard = function() { var copyFrom = document.createElement("textarea"); copyFrom.textContent = this.getBoxDocumentPWD(); var bodyElm = document.getElementsByTagName("body")[0]; bodyElm.appendChild(copyFrom); copyFrom.select(); var retVal = document.execCommand('copy'); bodyElm.removeChild(copyFrom); return retVal;};global.COPY_TO_CLIPBOARD.copyToClipboard();
IEでの取得方法
IE 11で動作確認を行いました。
Box.postStreamData[Object.keys(Box.postStreamData)[0]].folder.path.map(function(i) { return i.name;}).join(" > ");
ブックマークレット
javascript:var global = window;global.COPY_TO_CLIPBOARD = global.COPY_TO_CLIPBOARD || {};global.COPY_TO_CLIPBOARD.getBoxDocumentPWD = function () { return Box.postStreamData[Object.keys(Box.postStreamData)[0]].folder.path.map(function(i){return i.name;}).join(" > ");};global.COPY_TO_CLIPBOARD.copyToClipboard = function() { var copyFrom = document.createElement("textarea"); copyFrom.textContent = this.getBoxDocumentPWD(); var bodyElm = document.getElementsByTagName("body")[0]; bodyElm.appendChild(copyFrom); copyFrom.select(); var retVal = document.execCommand('copy'); bodyElm.removeChild(copyFrom); return retVal;};global.COPY_TO_CLIPBOARD.copyToClipboard();
注意事項
フルパスを取得したいフォルダまで移動してから、ブックマークレットを実行する前にページを更新(F5)しないと、正しく取得できません!!
Box.postStreamData
には、初回アクセスしたときの情報しかないみたいです。
取得する方法が他にもあるぜ!って方がいらっしゃいましたら、コメントください。