Sự khác nhau chính giữa $(window).width()
và $(document).width()
trong jQuery là gì? Cửa sổ có biểu thị trình duyệt và tài liệu thể hiện phần thân của trang html không? Tôi có đúng không?
Trả lời
Phương pháp này cũng có thể tìm thấy chiều rộng của cửa sổ và tài liệu.
$(window).width(); // returns width of browser viewport $(document).width(); // returns width of HTML document
Trong bản demo, tôi đã thiết html { width: 1000px; }
, mà là lớn hơn viewport.
Chiều rộng của nội dung trang HTML của bạn là giá trị thứ ba. $('body').width()
cũng có thể khác với hai loại kia (ví dụ: thử body { margin: 100px; }
).
Có - chiều rộng cửa sổ là chiều rộng của cửa sổ trình duyệt và chiều rộng của tài liệu là chiều rộng của trang web.
Bạn là chính xác. các window
là khu vực có thể xem được của trình duyệt. document
là phần nội dung thực sự của trang. Vì vậy, document
của bạn có thể mở rộng vượt xa window
SO tại sao bản trình diễn trên jquery hiển thị chiều rộng cửa sổ nhỏ hơn chiều rộng của trình duyệt? http://screencast.com/t/PlTXAShwmeP7 – AlxVallejo
@AlxVallejo nếu bạn nhìn vào nguồn, bạn có thể thấy rằng mã trình diễn đang chạy trong một iFrame có chiều rộng 568px. – Henesnarfel
'tài liệu' có thể mở rộng vượt xa' cửa sổ' đã làm mọi thứ rõ ràng đối với tôi. – inquisitive
$(window).width();
trả về chiều rộng của khung nhìn trình duyệt
$(document).width();
lợi nhuận chiều rộng của tài liệu HTML
$(document).width()
là một chút không đáng tin cậy, kết quả là một giá trị thấp hơn cho một toàn chiếu trình duyệt. $ (window) .width() là an toàn hơn.
$(window).width()
nhận toàn bộ chiều rộng của cửa sổ, bao gồm những thứ như thanh cuộn.
Vâng,
window
là thứ đầu tiên được tải vào trình duyệt. Đối tượngwindow
này có phần lớn các thuộc tính nhưlength
,innerWidth
,innerHeight
,name
, nếu nó đã bị đóng, cha mẹ của nó và nhiều hơn.Còn đối tượng tài liệu thì sao?
Đối tượng
document
là tài liệu html của bạn sẽ được tải vào trình duyệt .document
thực sự được tải bên trong đối tượngwindow
và có các thuộc tính có sẵn cho nó như tiêu đề, URL, cookie, v.v. Điều gì thực sự có nghĩa là? ? Điều đó có nghĩa là nếu bạn muốn truy cập thuộc tính cho sốwindow
, nó làwindow.property
, nếu đó làdocument
thì làwindow.document.property
cũng có sẵn dưới dạngdocument.property
.
Vì vậy, kết luận tài liệu có thể nhỏ hơn cửa sổ.
FROM: http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/
Vâng, aspx hoặc php của bạn sẽ vẫn xuất ra một tài liệu HTML. Nó không tạo sự khác biệt mà ngôn ngữ được sử dụng để tạo HTML. – kapa
Đúng là những ngôn ngữ đó là phía máy chủ. Đã chỉnh sửa nó tnx. –
@Bạn nên tham khảo các trích dẫn, cả hai đều hữu ích và có đạo đức: http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/ –
Một sự khác biệt quan trọng khác.
$(window).width();
có sẵn trước khi tải tài liệu/sẵn sàng
$(document).width();
chỉ có sẵn sau khi tài liệu đã được nạp
Vì vậy cho phần thứ hai, bạn cần
$(document).ready(function() {
var w = $(document).width();
});
@PizzaiolaGorgonzola có thể giúp bạn xin giải thích về điều này "nhưng nó không nên được sử dụng để cấu trúc mã của bạn, nó khuyến khích viết mờ đục, khó đọc, khó duy trì, không phải mã định hướng đối tượng." – kbvishnu