Оберните ваш текст в ячейку в DIV. Это скажет вам, является ли текст внутри DIV больше, чем ячейка:
<div id='test' style='width:200px;height:100px;overflow:hidden'>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse at felis. Etiam ullamcorper. Aenean fringilla, eros eu dapibus tristique, erat lacus vestibulum metus, nec pharetra leo ante et quam. Nunc ac mi molestie justo placerat laoreet. Morbi eget dolor. Curabitur pretium, mi quis iaculis molestie, dolor ligula sagittis orci, at sodales quam dolor quis sem. Suspendisse vitae risus. Maecenas vestibulum dolor vel augue. Sed purus. Ut nisi massa, vestibulum id, lobortis eget, aliquet eu, enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.</p>
</div>
<script type="text/javascript">
alert($('test').scrollHeight)
</script>
Если вы хотите обрезать в конце слова и добавить многоточие (...), вы можете в сценарии начать удалять слова до тех пор, пока высота не станет равной или меньшей, чем контейнер. (Я использую Protoype для ярлыка $)
Вот рабочий пример:
<div id='test' style='width:300px;height:100px;overflow:hidden'>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse at felis. Etiam ullamcorper. Aenean fringilla, eros eu dapibus tristique, erat lacus vestibulum metus, nec pharetra leo ante et quam. Nunc ac mi molestie justo placerat laoreet. Morbi eget dolor. Curabitur pretium, mi quis iaculis molestie, dolor ligula sagittis orci, at sodales quam dolor quis sem. Suspendisse vitae risus. Maecenas vestibulum dolor vel augue. Sed purus. Ut nisi massa, vestibulum id, lobortis eget, aliquet eu, enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.
</div>
<script type="text/javascript">
function shorten(element) {
if($(element).scrollHeight>$(element).getHeight()) {
var myText = $(element).innerHTML.split(" ")
myText.length=myText.length-2
$(element).update(myText.join(" ")+" ...")
window.setTimeout('shorten("'+element+'")',1)
}
}
shorten('test')
</script>
Вы могли бы делать с предложениями, разделяя точку на пробел, а не на пробел, но вам понадобился бы запасной вариант, если период не был найден или если то, что осталось после усечения, слишком короткое.