廃止?されたMTNoSearch対策

最近ブログをさぼりがちでした…申しわけありません。

MTは4.1以前まで、「検索バーが空白だった場合」の表示を出すための<MTNoSearch>というタグがあったのですが、MT4.2になりMTの検索機能という名目で<MTNoSearch>が無効になってしまいました。

そのため、空白のまま検索をかけるとMTのエラーメッセージが出てしまうため、普通のサイトとしてデザインされていた場合は急にMTの画面になるため、不便というのもありますがMTで作っていることがバレてしまうというのもよろしくありません。

そこで、応急処置ですがJavaScriptを利用しての回避策を紹介します。

まず下記スクリプトを、HTMLのヘッダ内でも別ファイルでも良いので記述してください。

function inputFocus(obj,txt) {
	if (obj.value == txt) obj.value = "";
}
function inputBlur(obj,txt){
	if (obj.value == "") obj.value = txt;
}

そして検索フォーム(inputタグ)を下記のように記述してください。
※タグ前後のカッコは半角にしてください。

<input type="text" class="text" id="search" name="search" value="キーワード検索" onfocus="inputFocus(this,'キーワード検索')" onblur="inputBlur(this,'キーワード検索')" />

以上で応急処置になります。

解説

inputFocus

検索フォームをクリックした際に、中身が指定したテキスト(初期値)だった場合に空白にするという処理をしています。

inputBlur

検索フォームから外れた際に、中身が空白だった場合に指定したテキスト(初期値)を入れるという処理をしています。


<MTNoSearch>対策という以外に、MTを利用していないサイトでもユーザビリティ向上にも効果がありますので是非試してみてください。

[javascript] [movabletype] [tips]

投稿日:08年10月10日 09:42:25

トラックバックURL

コメントする

名前

メールアドレス

URL

コメント (HTMLは使えません)