옛날 옛적에 나는 이것을해야했고, 내가 찾은 유일한 크로스 브라우저 신뢰할 수있는 솔루션은 해킹 작업이었습니다. 나는 이와 같은 솔루션의 가장 큰 팬은 아니지만 확실히 정확한 결과를 반복해서 산출합니다.
아이디어는 요소를 복제하고 경계 너비를 제거하고 복제 된 요소가 원본보다 넓은 지 테스트하는 것입니다. 그렇다면 잘릴 것입니다.
예를 들어, jQuery를 사용하면 :
var $element = $('#element-to-test');
var $c = $element
.clone()
.css({display: 'inline', width: 'auto', visibility: 'hidden'})
.appendTo('body');
if( $c.width() > $element.width() ) {
// text was truncated.
// do what you need to do
}
$c.remove();
나는 jsFiddle이를 입증하기 위해 만든 http://jsfiddle.net/cgzW8/2/
jQuery에 대한 사용자 정의 의사 선택기를 만들 수도 있습니다.
$.expr[':'].truncated = function(obj) {
var $this = $(obj);
var $c = $this
.clone()
.css({display: 'inline', width: 'auto', visibility: 'hidden'})
.appendTo('body');
var c_width = $c.width();
$c.remove();
if ( c_width > $this.width() )
return true;
else
return false;
};
그런 다음 요소를 찾기 위해 사용하십시오
$truncated_elements = $('.my-selector:truncated');
데모 : http://jsfiddle.net/cgzW8/293/
잘만되면 이것이 도움이 될 것입니다.