こんにちは、なりなりです(^ ^)
Pythonで作るタイマープログラムから脱線してJavaScriptの話になっていますが、今回もJavaScriptの話です。
簡単に出来そうで欲しい、JavaScriptというかbookmarklet(ブックマークレット)が、今見ているサイトのタイトルとURLを取得してクリップボードにコピーしてくれるものです。
僕の場合、ブログを書いて、Facebookページに投稿するのに必要なんです。最初は自動投稿してくれるプラグインなどを使っていた気がしますけど。
簡単に出来ることを期待していましたが、意外と厄介でした…
まず、タイトルとURLを取得するとこ自体は超簡単です。
document.title; #表示中のHTMLのタイトル location.href; #表示中のHTMLのURL
それぞれ、文字列を返してくれます。ここまではいい。
JavaScript クリップボード コピーで調べると
Document.execCommand() - Web API | MDN
documetオブジェクトで選択済みの範囲の文字列を
documet.execCommand('copy')
でクリップボードにコピー出来るようです。
が、文字列変数をdocumetに格納するのが一筋縄ではいかず、面倒になって断念(⌒-⌒; )
これは、Pythonistaの出番では?
ということで、コピペは自力でやることとして、タイトルとURLを表示してくれるbookmarkletを作ることにします。
簡単なのがテキストをポップアップ表示してくれるpromptを使うことで
prompt('ポップアップのタイトル','表示するテキスト')
でOK。
bookmarkletの基本は
- JavaScriptを一行に繋げてブックマーク化したもの - javascript:(:に続けてjavascriptを記述)をブラウザのURL欄に入力、又はブックマーク化する - 改行無し - スペースは%20(半角)で置き換える - 改行(¥n)は%5Cn(半角)で置き換える
ですが、今回は一文でだけなので簡単ですね。
javascript:prompt('タイトルとURL',document.title+'\n'+location.href);
これを適当なサイトを表示させて作ったブックマークのプロパティ(URL)を上記に置き換えれば
サイト表示中にブックマークを選ぶとこの様になるので、表示されたテキストを選んでコピペして使います。
超簡単な割には、そこそこ便利ですよね(^-^)