ZERO WIDTH SPACE を使って、Firefoxで禁則処理を無効にする関数

FirefoxChromeなどで、URL等の通常ならば禁則処理がかかるために横長くなる文字を強制的に折り返して表示するようにする関数。

// 利用方法
if ( jQuery.browser.mozilla ) {
	$("#WordBrakeItem").html(CnvWordBreakHtml($("#WordBrakeItem").html()));
}

//   折り返し用文字列変換 ( Firefox対応 )
function CnvWordBreakStr(sData) {
	if (sData == null || typeof(sData) == "undefined" || sData == "") {
		return "";
	} else {
		return sData.split("").join("\u200B");
	}
}

//   折り返し用HTML文字列変換 ( Firefox対応 )
function CnvWordBreakHtml(sData) {
	sData = DecodeEntity(sData);
	sData = sData.replace(/<br.*?>/g, "\n");
	sData = CnvWordBreakStr(sData);
	sData = EcodeEntity(sData);
	sData = sData.replace(/\n/g, "<br />");
	return sData;
}

//   折り返し用文字を削除 ( Firefox対応 )
function DelWordBreakStr(sData) {
	return sData.replace(/\u200B/g, "");
}

//   特殊文字を文字実体参照に変換
function EcodeEntity(sData) {
	if (sData == null || typeof(sData) == "undefined" || sData == "") {
		return "";
	}
	sData = sData.replace(/&/g, "&amp;");
	sData = sData.replace(/</g, "&lt;" );
	sData = sData.replace(/>/g, "&gt;" );
	return sData;
}

//   文字実体参照を特殊文字をに変換
function DecodeEntity(sData) {
	if (sData == null || typeof(sData) == "undefined" || sData == "") {
		return "";
	}
	sData = sData.replace(/&amp;/g, "&");
	sData = sData.replace(/&lt;/g , "<");
	sData = sData.replace(/&gt;/g , ">");
	return sData;
}