2010-05-21 60 views
12

Tôi đã nhận thấy rằng độ sáng của màn hình máy tính thay đổi đáng kể giữa các máy tính.Làm cách nào để sử dụng JavaScript để đo mức độ sáng của người dùng?

Như vậy, điều này làm thay đổi giao diện của trang web rất nhiều.

Có cách nào để sử dụng JavaScript để tự động phát hiện mức độ sáng (hoặc tối) mà người dùng theo dõi để tôi có thể điều chỉnh màu sắc trang web của mình cho phù hợp không?

CẬP NHẬT

Xin lưu ý rằng tôi không muốn tham gia hướng dẫn sử dụng. Tôi muốn phát hiện này được tự động để người dùng không nhận ra tôi tự động thay đổi bảng màu tự động dựa trên độ sáng/bóng tối của màn hình của họ.

UPDATE 2

Xin lưu ý rằng tôi không nói về mong muốn điều chỉnh/hiệu chỉnh người dùng cuối màn hình thực tế nhưng thay vào đó, programatically điều chỉnh màu sắc được lựa chọn sẽ được hiển thị trên web-page chinh no. Có nghĩa là, nếu người dùng cuối có màn hình tối hơn bình thường (độ sáng), thay vào đó, tôi sẽ hiển thị phiên bản trang web của tôi sử dụng màu sáng hơn.

+1

Xin lỗi, nhưng những gì bạn 'muốn' chỉ đơn giản là không thể. Đối với bất kỳ chương trình nào, hãy để một mình JavaScript. – bobince

+5

Thậm chí nếu điều này là có thể, bạn không nghĩ rằng người dùng đã điều chỉnh độ sáng của họ vì một lý do? –

+0

+1 câu hỏi điên rồ, -1 cập nhật đáng ghét –

Trả lời

2

Bạn không thể làm điều đó với javascript (và tôi không nghĩ rằng bạn có thể làm điều đó bằng bất kỳ ngôn ngữ nào khác, ít nhất, không cần phần cứng để trợ giúp).

14

Không có cách nào để thực hiện việc này theo chương trình. Những gì bạn cần làm là viết một số loại kiểm tra hiệu chuẩn màn hình, có thể sử dụng các biến thể của images like these, hiển thị cho người dùng hai hoặc nhiều hình ảnh và yêu cầu họ chọn hình gần hơn, điều chỉnh màu sắc mỗi khi họ lựa chọn, cho đến bạn cảm thấy những thay đổi bạn đã thực hiện là chính xác.

EDIT: Về cơ bản tôi đề xuất xây dựng một cái gì đó như this.

+0

Những gì bạn đề nghị yêu cầu sự tham gia của người dùng thủ công, phải không? Nếu vậy, đó không phải là những gì tôi đang tìm kiếm. – HankV

+2

+1 Không có cách nào để làm điều đó trong Javascript nhưng tôi nghĩ rằng nó đang trở thành có thể. Hãy xem Kênh dữ liệu hiển thị http://en.wikipedia.org/wiki/Display_Data_Channel – Shaji

+0

@HankV: Không có cách nào (hiện tại) để làm điều này trong JavaScript mà không cần sử dụng sự tham gia của người dùng. Bạn đã cân nhắc sử dụng Java chưa? Thậm chí sau đó bạn có thể sẽ cần sự tham gia của người dùng hoặc phần cứng để hiệu chỉnh màn hình, bạn cần xem sản lượng thực của một màu nhất định là gì và điều chỉnh màu đó cho đến khi nó chính xác. I E. nếu 0xFF0000 hiển thị là 0xFF1111, bạn biết tất cả các màu phải được làm tối để xuất hiện chính xác – Josh

1

Không. Theo nguyên tắc chung, JavaScript không được phép tìm hiểu toàn bộ về máy tính của bạn vì lý do bảo mật.

4

Hầu hết cài đặt độ sáng/bóng tối là chức năng của màn hình. Không có gì trong máy tính (hãy để một mình JavaScript chạy trong một sandbox) có thể truy cập vào loại thông tin này - nó chủ yếu là luồng dữ liệu một chiều giữa máy tính và màn hình. Các yếu tố như độ sáng của căn phòng và liệu ánh sáng phía sau màn hình có ảnh hưởng đến sự xuất hiện của màn hình hay không.

Không có cách nào để mọi người xem trang web của bạn theo cách bạn nhìn thấy. Bạn càng nhận ra rằng cuộc sống của bạn càng dễ dàng.

+0

+1 cho "Không có cách nào để mọi người xem trang web của bạn theo cách bạn nhìn thấy. Bạn càng sớm nhận ra rằng cuộc sống của bạn sẽ dễ dàng hơn" !!! – Josh

3

Còn ứng dụng flash/silverlight thì sao? Nó có thể sử dụng máy ảnh của người dùng (nếu họ có). Sau đó bạn có thể phân tích hình ảnh/video từ máy ảnh để đưa ra suy luận về mức độ ánh sáng của màn hình phản chiếu khuôn mặt của người dùng.

Nó sẽ là một ứng dụng rất dễ vỡ và phức tạp.

+1

-1 Hoàn toàn không có cách nào để làm việc này! 1 cho sự khéo léo mặc dù :) – Skilldrick

+1

Yêu cầu người dùng giữ một tấm gương lên máy ảnh để máy ảnh chụp màn hình và hiệu chỉnh ... lol! – Josh

+1

Silverlight 4 cho phép truy cập vào các cuộc gọi API cục bộ, nhưng nó yêu cầu người dùng cấp đặc quyền nâng cao. Thậm chí sau đó, tôi không chắc liệu Silverlight có quyền truy cập vào các thuộc tính màn hình cần thiết để thực hiện các loại thay đổi đó hay không. – Nick

Các vấn đề liên quan