JavaScript で文字をトリミングする
JavaScript を用いてエントリータイトル等の文字をトリミング(指定した文字数だけ表示する)するカスタマイズです。
以前、「Movable Type のようなトリミングを、他のブログで実現できないでしょうか」というご質問の回答です。大変遅くなりましたが、このエントリーで回答に替えさせて頂きます。
ここでは文字数でトリミングする方法を紹介していますが、半角・全角が混在している場合のサイズを調整したい場合は、下記のエントリーを参照ください。
とりあえず「id 属性名」と「要素名+ class 属性名」で指定したタグの中に記述された文字列をトリミングする、簡単な JavaScript を書いてみました。
Windows + IE6/Firefox 2 で実験した限りでは、全角・半角いずれも1文字で計算してトリミングしてくれるようですが、コードに不具合等ありましたらお知らせください。
1.スクリプトの追加
リスト 1.1 のリストを </head>
の直前に追加します。外部ファイルでも構いません。
リスト 1.1 トリミング用スクリプト
<script type="text/javascript">
var rest = '...';
function cutStringById(id, size) {
var str = document.getElementById(id).innerHTML;
if(str.length > size){
document.getElementById(id).innerHTML = str.substring(0, size) + rest;
}
}
function cutStringByTagNameAndClassName(tagName, className, size) {
var elements = document.getElementsByTagName(tagName);
for (i=0; i < elements.length; i++) {
if (elements[i].getAttribute('class') == className ||
elements[i].getAttribute('className') == className) {
var str = elements[i].innerHTML;
if(str.length > size){
elements[i].innerHTML = str.substring(0, size) + rest;
}
}
}
}
</script>
2.スクリプトを起動する
リスト 2.1 またはリスト 2.2 のいずれかを 、トリミングしたい文字列の直後、または </body>
の直前に追加します。
要素名+ class 属性名で指定
リスト 2.1 要素名+ class 属性名で指定
<script type="text/javascript">
cutStringByTagNameAndClassName('[要素名]', '[class 属性名]', トリミングサイズ);
</script>
id 属性名で指定
リスト 2.2 id 属性名で指定
<script type="text/javascript">
cutStringById('[id 属性名]', トリミングサイズ);
</script>
具体的な起動方法は3項をご覧ください。
3.サンプル
リスト 3.1 のようにHTMLマークアップされた文字列
リスト 3.1 サンプル1
<a href="http://domain.com/" class="hoge">文字をトリミングする</a>
の「文字をトリミングする」の文字を先頭から 5 文字だけ表示(「文字をトリ...」にする)する場合は、リスト 2.1 を利用し、その赤色部分を、
リスト 3.2 サンプル2
cutStringByTagNameAndClassName('a', 'hoge', 5);
とします。
リスト 3.3 のようにHTMLマークアップされた文字列
リスト 3.3 サンプル2
<p id="hoge">文字をトリミングする</p>
の「文字をトリミングする」の文字を先頭から 5 文字だけ表示(「文字をトリ...」にする)する場合は、リスト 2.2 を用い、その赤色部分を
リスト 3.4 サンプル2
cutStringById('hoge', 5);
とします。
4.トリミング後の追加文字列を変更する
リスト 1.1 の 2 行目(リスト 4.1 の赤色部分)を他の文字に変更してください。何も表示させたくない場合は赤色部分を削除してください。
リスト 4.1 トリミング後の文字列
var rest = '...';
- 複数のsubmitボタンをonsubmitで判定する方法
- JavaScriptの時間を0パディングする方法
- JavaScriptでJSONデータを作る方法
- JavaScriptやjQueryで設定されたイベントの定義場所を調べる方法
- javascript:void(0)のまとめ
- setTimeout()やsetInterval()で引数を渡す方法
- JavaScriptのFormDataの使い方
- JavaScriptメールアドレスチェッカー
- PCのブラウザでiPhoneやAndroidのようなパスワードフォームを実現するJavaScriptライブラリ「FormTools」
- JavaScriptでフォーカスのあたっている要素を取得する「document.activeElement」
- 入力フォームの全角・半角を勝手に変換してくれるJavaScript
- JavaScriptエラーを表示・確認する方法のまとめ
- ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由
- JavaScriptでCSSの擬似クラスを設定する方法
- JavaScriptの正規表現で文字列を抜き出す「グループ化」
≫ Javascriptの読まれるタイミングと実行のタイミング from nakawake.oops!
こんにちは、なかわけです。 昨日、仕事で発見した(というか仲間と話してて見つけた... [続きを読む]