/*! * jQuery word-break keep-all Plugin * ver 1.3.0 * * Copyright 2012, Ahn Hyoung-woo (mytory@gmail.com) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * https://github.com/mytory/jquery-word-break-keep-all * http://mytory.co.kr/archives/2801 * * Date: 2013-09-04 */ jQuery.fn.wordBreakKeepAll = function(option) { var is_there_end_angle_bracket = function(str){ return str.lastIndexOf('<') < str.lastIndexOf('>'); }; var is_there_start_angle_bracket = function(str){ return str.lastIndexOf('>') < str.lastIndexOf('<'); }; var is_there_no_angle_bracket = function(str){ //only -1 return str.lastIndexOf('>') == str.lastIndexOf('<'); }; var defaultOption = { OffForIE: false, // If IE, turn off plugin. useCSSonIE: true // on IE, use CSS word-break: keep-all }; var opt = $.extend(defaultOption,option); if( /MSIE/.test(navigator.userAgent) && opt.OffForIE == false && opt.useCSSonIE == true){ var addWordBreakKeepAll = function(obj){ $(obj).css({ 'word-break': 'keep-all', 'word-wrap': 'break-word' }); if($(obj).css('display') == 'inline'){ $(obj).css('display','block'); } }; }else if( ! /MSIE/.test(navigator.userAgent) || /MSIE/.test(navigator.userAgent) && opt.OffForIE == false && opt.useCSSonIE == false ){ var addWordBreakKeepAll = function(obj){ var html = $(obj).html(); // to store line break html = html.replace(/(\r\n|\n|\r)/gm, ' £££¦£ª£À¡× '); // .html() ·Î Áý¾î ³Ö¾úÀ» ¶§, ¿©´Â ű׸¸ ÀÖÀ¸¸é ºê¶ó¿ìÀú°¡ ÀÚµ¿À¸·Î ´Ý´Â ű׸¦ Áý¾î ³Ö±â ¶§¹®¿¡ <,>¸¦ ´Ù ¾ø¾Ø´Ù. var textArr = html.split(' '); // remove empty array textArr = textArr.filter(function(e){return e;}); $(obj).text(''); var skip = false; var full_str = ''; for(var i=0,j=textArr.length; i '; }else{ full_str += str + ' '; } if(is_there_start_angle_bracket(str)){ skip = true; } if(is_there_end_angle_bracket(str)){ skip = false; } }; $(obj).html(full_str.replace(/£££¦£ª£À¡×/g, "\n")); }; } return this.each(function(){ addWordBreakKeepAll(this); }); };