#GoogleChatのグループチャットのスレッド一覧リンクを表示するブックマークレット(コピペでOK)
GoogleChatには、
グループチャットでスレッドを作る機能はありつつも、
あくまでチャットなので、一覧化レイアウトがありません。
なので、簡単にログが流れて行ってしまいます。
そこで、今表示しているグループチャットのスレッドを
一覧表示するブックマークレットを作成しました。
需要があるかわかりませんので、使用にも部品取り(何かのヒントに)
にもご活用いただければ幸いです。
使用方法
適当なブックマークを作り、そのURLに下記のJavascriptを
貼り付けていただき、GoolgeChatでグループチャットを開き、
このブックマークレットをクリックすれば起動します。
※諸注意:
PC版Chromeで動作確認しています。
Googleの仕様が変更となった場合には使えません。
2020年6月24日現在の仕様となります。
ポップアップHTMLで一覧表示する版
javascript:(function(){links=document.querySelectorAll("c-wiz[data-topic-id]");kekka="";for(i=0;i<links.length;i++){for(z=0;z<links[i].attributes.length;z++){ if(links[i].attributes[z].name=="data-topic-id"){ if(kekka.indexOf(links[i].attributes[z].value) == -1){kekka+="<tr><td style='font-size:10px;'>"+location.href+"/"+links[i].attributes[z].value + "</td><td style='font-size:10px;'>" + links[i].firstElementChild.innerText + "</td></tr>";}else{}}else{}; }} myWindow = window.open("", "myWindow", "width=600,height=400");myWindow.document.write("<table>"+kekka+"</table>");})()
コンソールに表示する版
javascript:(function(){links=document.querySelectorAll("c-wiz[data-topic-id]");kekka="";for(i=0;i<links.length;i++){for(z=0;z<links[i].attributes.length;z++){ if(links[i].attributes[z].name=="data-topic-id"){ if(kekka.indexOf(links[i].attributes[z].value) == -1){kekka+=location.href+"/"+links[i].attributes[z].value+"\t"+links[i].firstElementChild.innerText;}else{}}else{}; }} console.log(kekka);})()
##簡易解説
すべてjavascriptです。Jqueryは使いません。
難しい事はしておらず、Googleのコーディング仕様を
把握するのが少し時間がかかるというくらいですw
links=document.querySelectorAll("c-wiz[data-topic-id]");
セレクターでスレッドの区切りとなるタグを取得します。
links[i].attributes
該当のタグの属性を取得します。
if(links[i].attributes[z].name=="data-topic-id")
該当のタグ/属性は複数存在するため、forとifを使って
目当ての属性を抜き出します。
※data-topic-idに、スレッドのIDが格納されています。
if(kekka.indexOf(links[i].attributes[z].value) == -1)
.valueで属性の値を取得していますが、
タグが2つずつ存在し重複があるため、「値を格納する変数」の
中をindexOfで確認して、存在しなければ書き出しする事にしました。
links[i].firstElementChild.innerText
これは各スレッドに対する最初の書き込みを取得しています。
firstElementChildで最初の子要素を見つけています。