// JScript 文件
//浏览器英文换行,兼容firefox浏览器
//如果是IE浏览器,则调用IE私有的css样式 break-all;
//其它浏览器,使用js脚本控制换行。
//参数 dEl 要换行的元素的id
//调用示例:
// var dEl = document.getElementById ("threePage");
// var sName = "break-word";
// var oReg = new RegExp('(//s|^)' + sName + '(//s|$)');
// if(dEl.className.match(oReg)){
// breakWord(dEl);
// }
//在要调用元素的后面调用本方法。
//aka makeDesignerHappy(dEl);
function breakWord(dEl){
if(!dEl || dEl.nodeType != 1){
return false;
} else if(dEl.currentStyle && typeof dEl.currentStyle.wordBreak == 'string'){
//Lazy Function Definition Pattern, Peter's Blog
//From http://peter.michaux.ca/article/3556
breakWord = function(dEl){
//For Internet Explorer,IE浏览器
dEl.runtimeStyle.wordBreak = 'break-all';
return true;
}
return breakWord(dEl);
}else if(document.createTreeWalker){
//Faster Trim in Javascript, Flagrant Badassery
//http://blog.stevenlevithan.com/archives/faster-trim-javascript
var trim = function (str) {
str = str.replace(/^/s/s*/, '');
var ws = //s/,
i = str.length;
while (ws.test(str.charAt(--i)));
return str.slice(0, i + 1);
}
//Lazy Function Definition Pattern, Peter's Blog
//From http://peter.michaux.ca/article/3556
breakWord = function(dEl){
//For Opera, Safari, and Firefox,其它浏览器
var dWalker = document.createTreeWalker(dEl, NodeFilter.SHOW_TEXT, null, false);
var node,s,c = String.fromCharCode('8203');
while (dWalker.nextNode())
{
node = dWalker.currentNode;
//we need to trim String otherwise Firefox will display
//incorect text-indent with space characters
s = trim( node.nodeValue ) .split('').join(c);
node.nodeValue = s;
}
return true;
}
return breakWord(dEl);
}else{
return false;
}
}
脚本内容摘自:http://www.hedgerwow.com/360/dhtml/css-word-break.html