[JavaScript] リンクに自動でアイコンを付加する3

以前作成したリンクに自動でアイコンを付加するライブラリを少し改良しました。
これまではアイコンを付加する対象を限定する場合には特定の id を持つ要素の子要素のリンクのみでしたが、
それに加えて class でも限定できるようにしました。

変更点

  • アイコンを付加するリンクを特定クラス名を持つ要素の子要素でも限定できるように修正

使い方

ファイルの読み込み

ZIPファイルを解凍後(jsファイルとアイコンのセット)、各ファイルを任意のディレクトリに配置し、
本機能を実装したいhtmlの head要素内 で読み込む。

<script type="text/javascript" src="js/addIcon2Links.js"></script>

基本的にはこれだけでOKです。
特定の id・class を持つ要素に包括される a要素 のみに適用したい場合は以降を参照してください。

id・class の指定

特定の id 若しくは class を指定された要素に包括される a要素 のみアイコン付加の対象とする場合は、
js ファイルをテキストエディタなどで開き、ファイル内の14~61行目付近の設定値の中の extract の "id" 若しくは "cls" に任意の値を記述してください。

extract : {
	// 指定IDを持つ要素内のリンクのみに限定する場合にIDを指定
	id : '',
	// 指定クラスを持つa要素のみに適用する場合にクラス名を指定
	cls : ''
},

両方指定されている場合はID指定の方が優先されます。未指定の場合は全要素が対象です。

その他の設定

jsファイル内の設定値を変えることで、表示するアイコンや、 margin や padding といったスタイル、どういったリンクにアイコンを表示するか(例えばファイルへのリンクのみ)などを変更できます。細かいことはファイル内の説明コメントをご参照ください。それで分からなければコメントフォームからご一報ください。

config : {
	// アイコン付加の対象とする要素を限定する場合(※両方指定されている場合はID指定の方が優先されます。)※未指定の場合は全要素が対象
	extract : {
		// 指定IDを持つ要素内のリンクのみに限定する場合にIDを指定
		id : '',
		// 指定クラスを持つa要素のみに適用する場合にクラス名を指定
		cls : ''
	},
	// アイコン配置ディレクトリ(ルート・絶対・相対パスで指定可能)
	imageDir : 'img/',
	// アイコンを付加する拡張子 [ 拡張子, 画像ファイル名, クラス名 ]
	extension : [
		[ '.pdf', 'ico_pdf.png', 'addIconPdf' ],
		[ '.xls', 'ico_xls.png', 'addIconXls' ],
		[ '.xlsx', 'ico_xls.png', 'addIconXls' ],
		[ '.doc', 'ico_doc.png', 'addIconDoc' ],
		[ '.docx', 'ico_doc.png', 'addIconDoc' ],
		[ '.ppt', 'ico_ppt.png', 'addIconPpt' ],
		[ '.pptx', 'ico_ppt.png', 'addIconPpt' ],
		[ '.zip', 'ico_zip.png', 'addIconZip' ],
		[ '.lzh', 'ico_zip.png', 'addIconZip' ],
		[ '.cab', 'ico_zip.png', 'addIconZip' ],
		[ '.txt', 'ico_txt.png', 'addIconTxt' ]
	],
	// 上記以外でアイコンを付加するリンク(true:付加する/false:付加しない)
	flags : {
		external : [ true, 'ico_external.png', 'addIconExternal' ], // 外部サイトへのリンク
		mail : [ true, 'ico_mail.png', 'addIconMail' ], // mailto
		http : [ true, 'ico_http.png', 'addIconHttp' ], // httpへのリンク(httpsページ内のみ有効)
		https : [ true, 'ico_https.png', 'addIconHttps' ], // httpsへのリンク(httpページ内のみ有効)
		blank : [ true, 'ico_blank.png', 'addIconBlank' ], // 別ウィンドウ
	},
	// 各アイコンのスタイル
	styles : {
		extension : 'no-repeat right center; margin-right:4px; padding-right:20px;',
		external : 'no-repeat right center; margin-right:4px; padding-right:20px;',
		mail : 'no-repeat right center; margin-right:4px; padding-right:20px;',
		http : 'no-repeat right center; margin-right:4px; padding-right:20px;',
		https : 'no-repeat right center; margin-right:4px; padding-right:20px;',
		blank : 'no-repeat right center; margin-right:4px; padding-right:20px;'
	},
	// httpのドメイン(httpsとドメインが変わる場合は文字列で設定)
	httpDomain : location.hostname,
	// httpsのドメイン(httpとドメインが変わる場合は文字列で設定)
	httpsDomain : location.hostname,
	// 該当ページのURL(変更不可)
	url : location.href
},

トラックバックURL

http://mashimonator.weblike.jp/mt/mt-tb.cgi/232

コメント投稿フォーム