2012-02-24 113 views
47

之間的區別在jQuery中,$(window).width()$(document).width()之間的主要區別是什麼? 窗口是否表示瀏覽器,文檔是否表示html頁面的主體?我對麼 ?

+0

@PizzaiolaGorgonzola請你解釋一下關於這個「,但不應該用它來構造代碼,它會鼓勵編寫不透明,難以讀取,難以維護的代碼,而不是面向對象的代碼。」 – kbvishnu 2014-07-21 13:44:28

回答

57

documentation of width()

這種方法也能找到的窗口和文檔的寬度。

$(window).width(); // returns width of browser viewport 
$(document).width(); // returns width of HTML document 

Simple jsFiddle Demo

在演示中,我已經設置html { width: 1000px; },這比視大。

HTML頁面正文的寬度是第三個值。 $('body').width()也可以與其他兩個不同(例如,請嘗試body { margin: 100px; })。

1

是 - 窗口寬度爲瀏覽器窗口寬度,文檔寬度爲網頁寬度。

20

你是對的。 window是瀏覽器的可視區域。 document是頁面的實際主體。所以,你的document可能遠遠超出window

+0

SO爲什麼jquery上的演示顯示窗口寬度小於瀏覽器寬度? http://screencast.com/t/PlTXAShwmeP7 – AlxVallejo 2012-10-03 22:21:43

+0

@AlxVallejo如果您查看源代碼,您可以看到演示代碼在寬度爲568px的iFrame中運行。 – Henesnarfel 2012-10-08 19:13:24

+0

'文件'可以延伸到遠遠超過'窗口'使我清楚的事情。 – inquisitive 2015-05-08 13:10:43

3

$(window).width();返回瀏覽器窗口的寬度HTML文檔的

$(document).width();收益寬度

$(document).width()有點不可靠,導致較低的值全屏蔽瀏覽器。 $(window).width()更安全。

$(window).width()獲取窗口的整個寬度,包括像滾動條之類的東西。

7

那麼,window是第一件被加載到瀏覽器中。 這window對象具有類似於length廣大的特性, innerWidthinnerHeightname,如果它已關閉,其父母和 更多。

那麼文檔對象呢?

document對象是您的html文檔,將被加載到 瀏覽器中。 document實際上被加載到window對象 內部並且具有可用的屬性,如標題,URL,cookie等。 這是什麼意思?這意味着如果你要訪問一個屬性 的windowwindow.property,如果是document它是 window.document.property這也是短期可作爲 document.property

因此,最後文件可能比窗口小。

FROM:http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/

+0

那麼,你的aspx或php仍然會輸出一個HTML文檔。使用哪種語言來創建HTML並沒有什麼不同。 – kapa 2012-02-24 13:00:05

+0

這是真的那些語言是服務器端。編輯它tnx。 – 2012-02-24 13:06:36

+2

@Rick你應該引用引號,它是有用的和道德的:http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/ – 2012-11-23 03:51:29

3

另一個重要區別。

$(window).width();是可用的文件加載之前/準備

$(document).width();僅提供後該文件已經加載

因此,對於第二,你需要

$(document).ready(function() { 
    var w = $(document).width(); 
});