2013-08-22 26 views
5

Tôi có một ứng dụng web mà tôi muốn thực hiện hành vi sau.Nhận số màn hình

Khi bạn bấm vào một liên kết cụ thể:

  • Nếu người dùng có nhiều hơn một màn hình - mở url trong một cửa sổ với một tên nhất định.

  • Nếu không - hãy thay đổi thuộc tính src của khung nội tuyến thành thuộc tính của url.

Làm cách nào để phát hiện số lượng màn hình trong JavaScript?

Nếu không thể, giải pháp chỉ Chrome cũng sẽ hoạt động vì đây là giải pháp dành cho ứng dụng mạng nội bộ.

+0

Tôi cho rằng bạn sẽ cần đặt tùy chọn cấu hình thay vì lấy nó. Config có lẽ là tốt hơn anyway, người dùng như sự lựa chọn, và không thích sự lựa chọn được thực hiện cho họ (trừ khi đó là một yêu cầu của các ứng dụng mạng nội bộ). – AD7six

+0

@ AD7six Điều gì về việc mở một cửa sổ mới, sau đó cho nó một bù đắp với 'moveTo' và kiểm tra' window.screenX' hoặc một cái gì đó? –

+0

Tại sao bạn muốn spam người dùng bằng các cửa sổ mới và sẽ không tốt hơn nếu triển khai tùy chọn này làm tùy chọn hoặc cấu hình cho người dùng thay thế? – Spoike

Trả lời

2

Như những người khác đã nói cách duy nhất hợp lý để làm điều này là hỏi người dùng. Một đề xuất cho phép điều này đã được nâng lên và từ chối trước đó. Thiết lập đa màn hình không phải là rất phổ biến trong dân số nói chung đó là lý do tại sao điều này được bỏ qua.

Các phương án là:

  • Prompt người dùng.
  • Yêu cầu người dùng chạy tiện ích mở rộng của trình duyệt (ít thú vị và rủi ro hơn).
  • Chạy qua một plugin (cũng không phải là rất thú vị).
  • Phục vụ ứng dụng của bạn thông qua một cái gì đó giống như WebkitJS

Nhìn chung - cho các trang web bình thường lựa chọn duy nhất là để nhắc nhở người dùng.

0

Hiện tại, bạn không thể thử đoán bằng cách tính chiều cao và chiều rộng của màn hình.

Ví dụ: nếu màn hình width rộng hơn height * 1.78 thì điều đó có nghĩa là nó có nhiều hơn tỷ lệ co là 16:9 thì có thể chúng đang sử dụng màn hình kép.

Vậy thì window.innerWidth có tốt hơn screen.width không?

Ngoài ra, điều này là không thể.

+1

Điều đó sẽ không hoạt động vì màn hình có nghĩa là chính xác - kích thước màn hình (không phải kích thước màn hình nền, trừ khi đó là cách hoạt động của một cạc đồ họa cụ thể) – AD7six

+0

'screen.width' luôn trả về độ phân giải của màn hình hiện tại .. –

+0

window.innerWidth' tốt hơn 'screen.width'? – iConnor

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