イントロダクション
「これは参考になる!」というページを見つけると、その情報を誰かにシェアしたくなります。参考になる情報は、自分の友人・知人とシェアして、その知見を分け合ったり、それについて議論を深めたくなるものです。
その時に、意外と手間になるのが、ページタイトルと、ページの URL を個別にコピーして、メールやチャットツールなどへ張り付ける行為です。
何故、ページのURLに加えて、ページタイトルを送るのかは、以下に理由を記載しました。
何故、Webページをシェアするときに、URLだけではなくページタイトルも付与するのか?
http://upa-pc.blogspot.com/2015/03/web-url-share-with-title.html
一般的にページタイトルと、ページの URL をメールやチャットツールなどへ張り付けるには、以下の手順が必要です。
(1) ページタイトルをコピー
(2) ページタイトルをメールやチャットツールなどへ張り付け
(3) URLをコピー
(4) URLをメールやチャットツールなどへ張り付け
4 ステップも必要になります。
もし、ページタイトルとページの URL が同時にコピー出来たら、どんなに楽でしょうか。
であれば、
(1) ページタイトルとページの URL をコピー
(2) ページタイトルとページの URL をメールやチャットツールなどへ張り付け
の 2 ステップで作業が完了します。
Twitter や Facebook のような SNS を使って情報を拡散する場合には、公式で用意されているシェアボタンを設置すれば、タイトルとページのURLを簡単に他人とシェアすることができます。
そのくらい簡単に、ページタイトルとURLをコピーできるようにしたいものです。
そこで、Webページの制作者向けに、ページタイトルとURLを一か所に表示する JavaScript コードを作成してみました。
ページタイトルとURLを一か所に表示する
前提条件
- ページタイトルは、HTML の title タグから取得します。
- URLは、正規化されたURL(link タグの ref 属性に "canonical" が指定されているものの、href 属性の値)を取得します。
javascript:正規化された(canonical)URLを取得する - サンプルコードと使用例 - Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.jp/2015/03/javascript-canonical-url-get.html
http://upa-pc.blogspot.jp/2015/03/javascript-canonical-url-get.html
正規化されたURLが無い場合にはエラーとします。この場合には、次のエラーメッセージを ページタイトルとURLのペアの代わりに画面上へ出力します。
エラーメッセージ:
error : 正規化されたURLが見つかりませんでした。
ページタイトルとURLのペアの生成は行えませんでした。
JavaScript では、正規化したURLが無くても、location オブジェクトから URL を取得することができますが、意図しないURLの表記になる可能性があるため、今回は対応を見送ることにします。
javascript:WebページのURLをlocationからではなく、HTML文書中のcanonicalから取得する理由 - Dr.ウーパのコンピュータ備忘録
http://upa-pc.blogspot.jp/2015/03/javascript-why-should-get-the-url-from-canonical.html
http://upa-pc.blogspot.jp/2015/03/javascript-why-should-get-the-url-from-canonical.html
ソースコード
<div id="page_title_url_pair_box"></div>
<script type="text/javascript">
<!--
(function () {
/*
link タグの ref = canonical に指定された、href を取得します
戻り値:
link タグの ref = canonical に指定された、href
見つからなかった場合、null
*/
function getCanonicalUrl() {
var links = document.getElementsByTagName("link");
for (var i = 0; i < links.length; i++) {
if (links[i].rel) {
if (links[i].rel.toLowerCase() == "canonical") {
return links[i].href;
}
}
}
return null;
}
// 元データ取得
var page_title = document.title;
var canonical_url = getCanonicalUrl();
// 出力データ作成
var output_data = document.createElement("div");
if (canonical_url) {
output_data.appendChild(document.createTextNode(page_title));
output_data.appendChild(document.createElement("br"));
output_data.appendChild(document.createTextNode(canonical_url));
output_data.appendChild(document.createElement("br"));
} else {
output_data.appendChild(document.createTextNode("error : 正規化されたURLが見つかりませんでした。"));
output_data.appendChild(document.createElement("br"));
output_data.appendChild(document.createTextNode("ページタイトルとURLのペアの生成は行えませんでした。"));
output_data.appendChild(document.createElement("br"));
}
// 画面へ出力
var box = document.getElementById("page_title_url_pair_box");
box.appendChild(output_data);
})();
//-->
</script>
実行結果
まとめ
このように、Webサイトやブログなどのページの、ページタイトルとURLを一か所に表示するようにしたことで、閲覧者が手軽にメールやチャットなので情報をシェアできるようになりました。次はもっと簡単に情報をコピーできるように、クリックされたらコピー対象の全領域を自動的に選択するように改良してみます。
次回
JavaScript:ページタイトルとURLを一か所に表示する(2) - 自動選択機能追加 - URLはcanonicalから取得します
http://upa-pc.blogspot.com/2015/03/javascript-page-title-and-canonical-url-2.html
![]() |


コメントを投稿
コメント投稿機能について