はじめに
今回は、hamashunさんの記事 hamashun.me : 著作権表示の正しい使い方 を読んで、去年仕事の関連で作成した「著作権表示の『年数』を自動で更新するJavaScript」のことを思い出したので、だいぶ時間が経ってしまいましたが、そのまとめをしようと思います。
作成にいたった背景
昨年、サイトのリニューアルの仕事がありました。まあ、私はよく見ているだけの人【謎】だったのですが。
その際、制作会社さんが作成されたテストサイトが完成して、早速ソースを見せていただいたのですが、1点気になった箇所がありました。著作権表示の『全て』の部分が、document.write
で生成されていたのです。これには、2つマズい点があります。
まず、1つ目は、document.write
が使用されていること。document.write
を使用すると、body
の下部にscript
タグを書くことが必要になります。これは、Web標準の原則である「分離」を考えると、あまりいい方法ではありません。
2つ目は、OFF環境に優しくないということ。このOFF環境というのは、JavaScriptを切っている状態のことです。人は多様な環境でWebにアクセスし、閲覧します。デバイスも人それぞれですし、設定も人それぞれ。必要な情報をJavaScriptで生成してまうと、OFF環境の人は必要な情報にアクセスすることができません。この場合は、JavaScriptをOFFにすると、著作権に関する表示が丸ごと失われてしまいます。
以上の問題があったので、勉強中のJavaScriptの練習として、著作権表示の中の「発行年から今の年」を生成するスクリプトを作成しました。
作成した当時のスクリプト
当時、私が作成したスクリプトは「Copyright © 2008-2011 hogehoge All Rights Reserved.」という表記になるようにしていました。この中で「2008-2011」の部分を生成していました。JavaScriptを切ると「Copyright © hogehoge All Rights Reserved.」と表示され、著作権表示の全てが失われることはありません。
記事を読んで
で、前述のhamashunさんの記事を見て、作成したスクリプトのことを思い出しました。今回の私の記事に寄せて、簡単にまとめてみると以下の通り。
- 著作権表示にJSてどうなん
- 最低でも必要なのは「©」「著作権者の名前」「最初の発行年」
- アメリカでは「© 著作権者の名前 最初の発行年 All rights reserved.」
- 日本では、アメリカのコピペで広まり(?)、お約束で置いている
私が当時作成していたスクリプトはOFF環境だと、「Copyright © hogehoge All Rights Reserved.」としか表示されず、「発行年」が抜けていました。これでは、十分な内容が提供されているとは言えません。
今回作成したスクリプトのソース
そこで、記事の内容を受けて、スクリプトを修正しました。以下、ソースです。
HTMLのマークアップは以下のようになっています。
<small id="copy">© hogehoge <span id="year">2008</span> All Rights Reserved.</small>
そして、JavaScriptの方はこんな感じです(注意:jQueryを使用しています)。
$(document).ready(function (){
if (!document.createElement) return false;
if (!document.createTextNode) return false;
if (!document.getElementById) return false;
var elementYear = document.getElementById("year");
var today = new Date();
var year = today.getFullYear();
var now = document.createTextNode("-"+year+" ");
elementYear.appendChild(now);
});
このようにすることによって、JavaScriptが動作する環境では、以下のように表示されます。
© hogehoge 2008-2011 All Rights Reserved.
また、OFF 環境においては、このように表示されます。
© hogehoge 2008 All Rights Reserved.
これで、最低限の表示はJavaScriptを切っていても確保され、JavaScriptが動作する環境では、現在の年数が表示されます。