LoginSignup
1
2

More than 3 years have passed since last update.

GoogleChatのグループチャットのスレッド一覧リンクを表示するブックマークレット(コピペでOK)

Last updated at Posted at 2020-06-24

sample.png

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で最初の子要素を見つけています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2