2009-02-02 32 views
31

Vì nhiều lý do ngớ ngẩn khác nhau, tôi muốn có thể phát hiện hình chữ nhật của cửa sổ trình duyệt trên màn hình. Thanh tiêu đề và tất cả.Xác định vị trí của cửa sổ trình duyệt bằng JavaScript?

Điều này có thể hay JavaScript bị giới hạn ở cổng chế độ xem của trang?

Chỉnh sửa: Tôi có thể không rõ ràng, nhưng cổng xem là phần của trang hiển thị trong cửa sổ. Đây có thể không phải là một thuật ngữ thường được sử dụng với các trình duyệt, nhưng nó phổ biến trong đồ họa.

Trả lời

40

Đối với tiêu chuẩn trình duyệt tương thích:

X - window.screenX
Y-window.screenY

Đối với IE:

X-window.screenLeft
Y - window.screenTop

Hãy ghi nhớ, implementations vary. Cẩn thận với các thiết lập đa màn hình ...

+4

Tôi vừa thử điều này ngay hôm nay và screenLeft và screenTop hoạt động trong IE 8, nhưng screenX và screenY không còn hoạt động nữa. Dường như IE cuối cùng đã quyết định hợp tác trên cái này. Bất kỳ ai khác có cùng kết quả? – trusktr

+0

thnx..it rất hữu ích –

+0

Đây không phải là câu trả lời hay. Điều gì về thiết lập nhiều màn hình. Điều này không hoạt động. –

-4

Sao chép dán từ kết quả đầu tiên của google:

// Browser Window Size and Position 
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005 
// you may copy these functions but please keep the copyright notice as well 
function pageWidth() 
{ 
return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null; 
} 
function pageHeight() 
{ 
return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null; 
} 
function posLeft() 
{ 
return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0; 
} 
function posTop() 
{ 
return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0; 
} 
function posRight() 
{ 
return posLeft()+pageWidth(); 
} 
function posBottom() 
{ 
return posTop()+pageHeight(); 
} 
+0

Từ trang giống nhau: "Để có thể xác định không gian có sẵn trong cửa sổ trình duyệt và vị trí hiện tại của cửa sổ đó trong trang web hiện tại, bạn cần sao chép tập lệnh sau và đính kèm tập lệnh vào phần đầu của trang. " Tôi nghĩ điều này có nghĩa là khung nhìn. –

+0

Đã chọn đôi và điều này không làm những gì tôi muốn. Khi cửa sổ của tôi ở giữa màn hình, cảnh báo (posLeft()) trả về 0. –

+0

pageXOffset trả về "Trả về số pixel mà tài liệu đã được cuộn theo chiều ngang." - không phải là bù đắp trên màn hình –

8

Hãy nhìn vào các thuộc tính sau:

  • window.screen.height: Trả về chiều cao của màn hình bằng pixel.
  • window.screen.top: Trả về khoảng cách tính bằng pixel từ phía trên cùng của màn hình hiện tại.
  • window.screen.width: Trả lại chiều rộng của màn hình.
  • window.screen.left: Trả về khoảng cách tính bằng pixel từ phía bên trái của màn hình chính sang bên trái của màn hình hiện tại.

(Những điều này sẽ không cung cấp cho bạn kích thước cửa sổ hoặc vị trí, nhưng có thể cho phép bạn để giải thích một cách chính xác họ khi hoạt động trên một hệ thống với nhiều màn hình)

+1

Không hoạt động trong Chrome. –

+1

Chrome không có cửa sổ.screenTop và window.screenLeft có vẻ tương đương. – Spencer

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