code up

jGrowlでHTMLエスケープ

jGrowlのちょっとしたTips。

jGrowlはメッセージとして渡された文字列をそのまま処理する。つまりタグを書けばその通りになるのでメッセージを修飾することができる。

では逆にHTMLそのままではなくエスケープ処理をして表示したい場合はどうするか。

標準のオプションでは無いようなので、beforeOpenで対処した。

例えばこんな感じ。

$.jGrowl('<html>', {
	beforeOpen: function(n, m, o, e){
		if(n && $('.jGrowl-message', n).length > 0){
			$('.jGrowl-message', n).text(m);
		}
	}
});

全てのjGrowl処理で共通してエスケープしたいのであれば、$.jGrowl.defaults.beforeOpenに書いてしまえば良い。

$.jGrowl.defaults.beforeOpen = function(n, m, o, e){
	if(n && $('.jGrowl-message', n).length > 0){
		$('.jGrowl-message', n).text(m);
	}
};

こんな感じ

関連記事