【IT】サイトのURLとタイトルを即時コピー!調査作業が少し楽ちん! ブックマークレット/Bookmarklet/JavaScript
ご無沙汰しております。。
毎日パンツをはく暇がないほど、下半身事情が多忙な
芦田マラちゃん(@mara_ashida_)です!
どう?
皆さんは、フニャフニャのチンチンとカサカサの膣に潤い与えてる?
砂漠化が止まらない?haha
さてね。
目次・流れ
No | タイトル |
---|---|
1 | 概要/目的【URL管理の徹底!!!】 |
2-1 | 【非エンジニア向け】登録・利用方法 |
2-2 | 【エンジニア向け】コード |
3 | 解説・補足 |
No.1概要/目的【URL管理の徹底!!!】
エンジニアの方は、技術に関して調査する際、
公式ドキュメントやらBlogを漁り、メモ(Excel・txtファイル等)に残すという作業を
少なからずしていると思います。
あるあるなのは「URLだけメモして、何に関するURLか失念してしまうこと」。
一度、URLにアクセスして中身を見ないとダメで、
都度都度「何だっけコレ?」つって開いていたら、チリツモ(塵も積もれば・・・)で結構時間もかかるし、
フラストレーションも溜まります。
また、下記記事の通り、調査において「URL管理」を徹底することは大切です。
[★コンサルが実践するリサーチのコツ - コンサルがすなるブログといふもの]
というわけで、【URL+サイトのタイトル】を最低限メモするという作業を私は心がけていますが、
今回は【ブックマーク】を押下して、【URL+サイトのタイトル】を同時に一瞬で取得する方法について記載します!!! 多分、地味に便利かも。
ブックマークレット (Bookmarklet)で【URL+サイトのタイトル】を一瞬で取得する方法 について記録します。
No.2-1【非エンジニア向け】登録・利用方法
原理はどうでもいいから、方法だけ知りたい!という人向けの手順です。
No. | 内容 |
---|---|
1 | 何でもいいからBookmarkに登録する |
2 | 登録したBookmarkを編集する |
3 | 使ってみよう! |
下記手順で、どのサイトでもいいので、BookmarkバーにBookmark登録しましょう。
編集します。
名前は任意です。URLに下記、プログラム(下記No.1~3のいずれか)を丸々コピーし貼付けてください。例:No.1:Prompt(入力ボックス)で表示するタイプを選択
No.1:Prompt(入力ボックス)で表示
javascript:(function(){var title = document.getElementsByTagName('title')[0].text;title = '[★'+title+']\r\n'+decodeURI(location.href)+'\r\n\r\n';title = window.prompt('下記リンクとタイトルをコピーします。',title);if(title!=null){var target = document.createElement("textarea");target.value = title;document.body.appendChild(target);target.select();document.execCommand("copy")?true:alert('コピーできませんでした。');target.parentElement.removeChild(target);}})()
No.2:Confirm(確認メッセージ)で表示
javascript:(function(){var title = document.getElementsByTagName('title')[0].text;title = '[★'+title+']\r\n'+decodeURI(location.href)+'\r\n';msg='下記リンクとタイトルをコピーします。\r\n----------------------------\r\n' + title;if(window.confirm(msg)){var target = document.createElement("textarea");target.value = title;document.body.appendChild(target);target.select();document.execCommand("copy")?true:alert('コピーできませんでした。');target.parentElement.removeChild(target);}})();
No.3:自作のMessageBoxで表示
javascript:(function(){var title = document.getElementsByTagName('title')[0].text;title = '[★'+title+']\r\n'+decodeURI(location.href)+'\r\n';var w = ( screen.width-400 ) / 2;var h = ( screen.height-150 ) / 2;var myWindow = window.open("", "myWindow", "width=400,height=150"+ ",left=" + w + ",top=" + h);myWindow.document.write("<html>");myWindow.document.write("<style type=\"text/css\">body {background:lavenderblush;}::selection {background: palegreen;}</style>");myWindow.document.write("<body>");myWindow.document.write("<p>URLとタイトルを表示します。copyしてください。</p>");myWindow.document.write("<textarea rows=5 cols=50>"+title+"</textarea>");myWindow.document.write("</body></html>");myWindow.document.getElementsByTagName('textarea')[0].select();})();
No. | 内容 | 動作環境 |
---|---|---|
1 | Prompt(入力ボックス)で表示 | Chrome |
2 | Confirm(確認メッセージ)で表示 | Chrome |
3 | 自作のMessageBoxで表示 | Chrome・Edge |
No.1/2はEdgeやFirefoxで、コピー機能が動作しなかったため、 やむなく、自作のMessageBoxで結果のみ表示する機能を作成しました。
どのサイトでもいいです。表示してから、登録したBookmarkを押下します。 POPUPにて「OK」を押下すると、【URL+サイトのタイトル】をコピーできます。
例:https://qiita.com/maimax/items/c5ac541be1d475c012cf
下記のような結果を取得できます。
仕様 | 内容 |
---|---|
動作環境 | Chrome |
実行結果 | ①【★タイトル】(改行コード)URL ②Copyに失敗したときはその旨のMessageを表示 Excelに貼付けたい場合、改行コード(\r\n)ではなく、タブ記号(\t)に変えてあげるといいと思います。 |
注意 | URLに不正な文字があると動作しないことがあります(URLのDecodeでたまにエラーになります。)。 |
No.1~3の結果イメージはそれぞれ下記の通りです。
No.2-2【エンジニア向け】コード
No. | 内容 | 動作環境 |
---|---|---|
1 | Prompt(入力ボックス)で表示 | Chrome |
2 | Confirm(確認メッセージ)で表示 | Chrome |
3 | 自作のMessageBoxで表示 | Chrome・Edge |
改行を元に戻すと下記のようなコードになります。また、コメントも追記してます。
No.1:Prompt(入力ボックス)で表示
javascript:(function(){ //リンク取得+整形 var title = document.getElementsByTagName('title')[0].text; title = '[★'+title+']\r\n'+decodeURI(location.href)+'\r\n\r\n'; title = window.prompt('下記リンクとタイトルをコピーします。',title); //コピー if(title!=null){ var target = document.createElement("textarea"); target.value = title; document.body.appendChild(target); target.select(); document.execCommand("copy")?true:alert('コピーできませんでした。'); target.parentElement.removeChild(target); } })();
No.2:Confirm(確認メッセージ)で表示
javascript:(function(){ //リンク取得+整形 var title = document.getElementsByTagName('title')[0].text; title = '[★'+title+']\r\n'+decodeURI(location.href)+'\r\n'; msg='下記リンクとタイトルをコピーします。\r\n----------------------------\r\n' + title; //コピー if(window.confirm(msg)){ var target = document.createElement("textarea"); target.value = title; document.body.appendChild(target); target.select(); document.execCommand("copy")?true:alert('コピーできませんでした。'); target.parentElement.removeChild(target); } })();
No.3:自作のMessageBoxで表示
javascript:(function(){ //リンク取得+整形 var title = document.getElementsByTagName('title')[0].text; title = '[★'+title+']\r\n'+decodeURI(location.href)+'\r\n'; //自作MessageBoxの設定 ※中央寄せにするため、位置を計算 var w = ( screen.width-400 ) / 2; var h = ( screen.height-150 ) / 2; var myWindow = window.open("", "myWindow", "width=400,height=150"+ ",left=" + w + ",top=" + h); //HTMLを作成 myWindow.document.write("<html>"); myWindow.document.write("<style type=\"text/css\">body {background:lavenderblush;}::selection {background: palegreen;}</style>"); myWindow.document.write("<body>"); myWindow.document.write("<p>URLとタイトルを表示します。copyしてください。</p>"); myWindow.document.write("<textarea rows=5 cols=50>"+title+"</textarea>"); myWindow.document.write("</body></html>"); //textareaを選択状態にする myWindow.document.getElementsByTagName('textarea')[0].select(); })();
No.3 解説・補足
Bookmarkletはウェブブラウザのブックマークなどから起動できるJavaScriptプログラムです。
javascript:(function(){ ★--------好きなjavascriptのコードを書いてね--------★ })();
取得情報 | 内容 |
---|---|
タイトル | HTMLのtitleタグの情報を取得してます。 |
URL | 日本語リンクの場合、Encodeされてしまうので、見やすいようにdecodeURIしてます。 |
なお、decodeURIは、不正な文字リンクの場合に失敗することがあり、回避方法がめんどくさいので、対応してません。
No.1/2のプログラムは、Firefox(セキュリティが原因か?)やEdgeでは機能しなかったため、自作のMessageBoxで表示するタイプ(No.3)を作成しました。
copy機能は下記サイトを参考にしてます。軽く解説するとポイントは下記2点です。
- execCommand("copy")を使用するためには、textareaをbodyの下部(子要素)に作成し、select/選択する必要があります。その後、作成したtextareaを削除(removeChild)するということをしてます。
-
document.execCommand("copy")の返り値はtrue or falseです。
「?」(条件 (三項) 演算子)で、trueの場合はtrueを返し、falseの場合は、alertを返してます。つまり、コピーに失敗した場合のみalertメッセージを表示してます。
//コピー if(window.confirm(msg)){ var target = document.createElement("textarea"); target.value = title; document.body.appendChild(target); target.select(); document.execCommand("copy")?true:alert('コピーできませんでした。'); target.parentElement.removeChild(target); }
Qiitaで探すと、結構色んなbookmarkletが出てきます。
Webブラウザで行う定型的な作業(検索・スクレイピング・入力)があれば、活用できると思います。
(エロ動画のDownloadリンクをスクレイピングして、Download画面を表示するなんてことも・・・・)
普段意識しない当たり前の作業を自動化・効率化することも検討してはいかがでしょうか?
以上。
[★C# で COM オブジェクトを作ってみる - Qiita] https://qiita.com/tomochan154/items/1ce33f2aef167c0fed9d#1-8 [★VBAで扱えるDLLの作成] https://excel.syogyoumujou.com/memorandum/dll_1.html [★C#でVBA向けの.NETライブラリ(COMコンポーネント)を作成するには? - @IT] https://www.atmarkit.co.jp/fdotnet/dotnettips/1064combycs/combycs.html [★忘れっぽいプログラマーの備忘録 .NetによるCOMの作成] http://andromeda0626.blog.fc2.com/blog-entry-38.html C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegSvcs.exe /codebase C:\//////dll /tlb C:\////////// [★VBAまたはVBSからCOM経由で使用できる.NETのライブラリの作成方法 - Qiita] https://qiita.com/mima_ita/items/efcd1a6ea86f09047984 %BIN%\regasm C:\dev\NMeCabCom\NMeCabCom\bin\Debug\NMeCabCom.dll /tlb /codebase reg query HKCR\CLSID | find /i "{9F3DBFEE-FD77-4774-868B-65F75E7DB7C3}"
■DSの定義 [★【図解】コレ1枚でわかる統計学と機械学習の関係:ITソリューション塾:オルタナティブ・ブログ] https://blogs.itmedia.co.jp/itsolutionjuku/2019/07/1_25.html 統計と機会学習 ■通常の開発との違い ドメイン知識 仮説・課題ありき 運用のしやすさ 各検定、人材像から必要なスキルを洗い出す 参考書・事例からものをつくる ■■■■■■■■■■■■■■■■■■■■■■■■■■ ■有識者・ソース ■■■■■■■■■■■■■■■■■■■■■■■■■■ 安宅和⼈ 滋賀大学データサイエンス学部長 竹村 彰通 細谷 功 松尾豊 内閣府:AI戦略、AIガイドライン 滋賀大学データサイエンス学部 日本人工知能学会 データサイエンス協会 G検定、E検定 [★本当に知ってる!? リアルなデータ分析の世界~サイカのエンジニアが語る、話題の技術の「いま」と「未来」~] https://www.slideshare.net/who_you_me/ss-73237524 http://www.news-postseven.com/archives/20140424_252628.html 総務省 総務省ICTスキル総合習得教材 https://www.soumu.go.jp/ict_skill/ 第四次産業革命スキル習得講座認定制度 [★AI戦略 - 科学技術・イノベーション - 内閣府] https://www8.cao.go.jp/cstp/ai/index.html ■外部の講座 インターネットを利用した大規模なオンライン講座であるMOOC(ムーク)の仕組みを利用して、「高校生のためのデータサイエンス入門」「大学生のためのデータサイエンスⅠ、Ⅱ、Ⅲ」の4つの講座 [★無料で受講できる「ディープラーニング講座」を開講 日本ディープラーニング協会:「AIとは何か」「ディープラーニングによって何ができるか」を知る - @IT] https://www.atmarkit.co.jp/ait/articles/2104/01/news031.html [★無料で受講できる「統計オープンデータのデータ分析入門」 総務省が開講:「社会人のためのデータサイエンス入門」と併せて学習 - @IT] https://www.atmarkit.co.jp/ait/articles/2101/14/news023.html ■アプローチのヒント 滋賀大学のデータサイエンス学部の人材像 IPA・企業の要件を調査する 一般社団法人データサイエンティスト協会 APIエコノミー、オープンデータ活用 ■ AutoML ■定義 そもそもAI>機会学習>深層学習/Deep Learning ■データ分析 予測 ■ https://www.datascientist.or.jp/common/docs/skillcheck_ver3.00.pdf データサイエンス力 データエンジニアリング ビジネス・ドメイン知識 [★データサイエンスとデータエンジニア] https://www.slideshare.net/nagix/ss-62777080 [★最新業界事情から見るデータサイエンティストの「実像」] https://www.slideshare.net/takashijozaki1/cb21-seminar130830-tjo-25765789?next_slideshow=1 ■SlideShare [★機械学習を「社会実装」するということ / Social Implementation of Machine Learning - Speaker Deck] https://speakerdeck.com/moepy_stats/social-implementation-of-machine-learning [★BrainPad (@brainpadpr) on Speaker Deck] https://speakerdeck.com/brainpadpr ■社会実装 [★機械学習や統計学を「社会実装」するということ - 渋谷駅前で働くデータサイエンティストのブログ] https://tjo.hatenablog.com/entry/2020/07/15/173000 ■SQL [★Oracle 10gの正規表現で文字列操作を極める:SQLクリニック(1)(1/2 ページ) - @IT] https://www.atmarkit.co.jp/ait/articles/0502/24/news131.html [★データハンドリングのためのSQL / SQL for data handling - Speaker Deck] https://speakerdeck.com/brainpadpr/sql-for-data-handling?slide=124 ■コードの保守性 https://ytknzw.github.io/PyCon/PyCon_mini_Hiroshima/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%82%B9%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E3%82%B9%E3%82%B9%E3%83%A1_PyCon_mini_Hiroshima_20201010.pdf http://www.scj.go.jp/ja/member/iinkai/kanji/pdf22/siryo198-5-5.pdf Brainpad [★機械学習] https://ai.brainpad.co.jp/category/machine-learning/機械学習2/ [★入社1年目が教わる「はじめての人工知能」 第1回:人工知能(AI)とはなにか] https://ai.brainpad.co.jp/1683/ [★なぜ「データ分析力」ではなく「データ活用力」が必要なのか? これから身につけるべきスキルとは:MarkeZine(マーケジン)] https://markezine.jp/article/detail/32135 [★ITSS+(プラス)・ITスキル標準(ITSS)・情報システムユーザースキル標準(UISS)関連情報:IPA 独立行政法人 情報処理推進機構] https://www.ipa.go.jp/jinzai/itss/itssplus.html [★データサイエンティストの仕事の流れを知ろう|アクセンチュア] https://www.accenture.com/jp-ja/data-scientist-training-for-women-part3 [★データの読み方 | データ分析基礎知識] https://www.albert2005.co.jp/knowledge/statistics_analysis/statistics_basics/viewpoint [★なぜAI時代に問題発見の重要性が増すのか?(細谷 功) | 現代新書 | 講談社(1/3)] https://gendai.ismedia.jp/articles/-/71166