Tôi đang cố gắng phát hiện (qua javascript) khi tràn văn bản có hiệu lực. Sau khi nghiên cứu nhiều, tôi có một giải pháp làm việc, ngoại trừ trong bất kỳ phiên bản của Firefox:Phát hiện tràn văn bản CSS: dấu ba chấm trong Firefox
http://jsfiddle.net/tonydew/mjnvk/
Nếu bạn điều chỉnh trình duyệt để các lược được áp dụng, Chrome, Safari, thậm chí IE8 + sẽ cảnh báo rằng lược là hoạt động. Trong Firefox (mọi phiên bản tôi đã thử, bao gồm 17 và 18) không nhiều lắm. Firefox sẽ luôn cho bạn biết dấu ba chấm là KHÔNG hoạt động.
Các console.log() đầu ra cho thấy lý do tại sao:
Firefox (OS X):
116/115 - false
347/346 - false
Chrome (OS X):
116/115 - false
347/851 - true
Trong Firefox, scrollWidth là không bao giờ lớn hơn offsetWidth.
Điều gần nhất tôi có thể tìm thấy giải pháp là "Why are IE and Firefox returning different overflow dimensions for a div?" nhưng tôi đã sử dụng giải pháp được đề xuất.
Có ai cũng có thể làm sáng tỏ cách làm công việc này trong Firefox không?
EDIT: Ngoài câu trả lời @Countary bên dưới, tôi đã tìm thấy phương pháp thay thế không yêu cầu thay đổi đối với đánh dấu. Tuy nhiên, nó đang làm việc nhiều hơn một chút vì nó tạm thời bắt chước từng yếu tố để thực hiện đo lường đối với:
$(function() {
$('.overflow').each(function(i, el) {
var element = $(this)
.clone()
.css({display: 'inline', width: 'auto', visibility: 'hidden'})
.appendTo('body');
if(element.width() > $(this).width()) {
$(this).tooltip({
title: $(this).text(),
delay: { show: 250, hide: 100 },
});
}
element.remove();
});
});
http://jsfiddle.net/tonydew/gCnXh/
Bất kỳ ai có một lời nhận xét về hiệu quả của việc này? Nếu tôi có một trang của nhiều yếu tố tràn tiềm năng, điều này sẽ có tác động tiêu cực? Tôi muốn tránh việc sửa đổi đánh dấu hiện có nếu có thể, nhưng không phải vì chi phí xử lý JS quá mức trên mỗi lần tải trang.
Tại sao bạn tạo tài khoản mới cho câu hỏi này? Đánh giá bằng bài đăng được gắn thẻ và định dạng hoàn toàn của bạn, bạn rõ ràng có một tài khoản khác mà bạn sử dụng để trả lời câu hỏi. – AlienWebguy
Không có tài khoản khác mà tôi biết! Các thẻ và định dạng là cách chúng là vì tôi không muốn trở thành người hỏi các câu hỏi chuẩn bị kém. Tôi không đến không tốt; chỉ cố gắng đặt câu hỏi hay nhất tôi có thể để nó được trả lời! – TunaMaxx
Đủ công bằng, +1 :) – AlienWebguy