2011-09-07 55 views
9

MDN說明如何使用window.screen對象,但也表示 「DOM Level 0. Not part of specification.使用window.screen安全嗎?

W3Schools的說,window.screen.*性能supported in all major browsers

如果我理解正確...... window.screen是完全非標準的,但仍然普遍支持。是對的嗎?

如果是這樣,那麼我需要注意哪些跨瀏覽器差異,還是我可以使用它?順便提一下,我主要對screen.availWidth感興趣。

+0

如果您偏​​離標準,您的代碼可能會在未來的瀏覽器中崩潰。 –

+1

在[CSSOM視圖](http://www.w3.org/TR/cssom-view/#the-screen-interface)標準中指定了* Screen *界面。 –

+0

DOM實際上只是關於抽象文檔,所以它沒有實際輸出設備的概念。在實踐中,每個瀏覽器當然必須提供某種輸出設備(儘管你可以將'wget'映像爲包含沒有輸出設備的DOM綁定腳本引擎)。這就是爲什麼'window'不在DOM中(儘管它可能在其他地方被標準化,正如Sime的鏈接所暗示的那樣)。 –

回答

4

你應該沒問題。

它不屬於標準的原因是因爲DOM級別0是在標準出現之前引入的。 DOM Level 0也被稱爲Legacy DOM,它是在NetScape 2.0使瀏覽器中的JavaScript成爲現實的同時創建的;實際上,DOM Level 0是第一個DOM規範。

Legacy DOM將會存在很長時間,如果不是這樣的話,它將破壞已經存在的非常流行的腳本的TON的向後兼容性。

編輯:換句話說,你的理解是完全正確的。它不是「標準化」的,但它是完全普遍的,並且將持續很長時間。

+0

但它*是*標準的一部分...'> _ <' –

+0

窗口是標準的一部分。窗口將保留在屏幕對象上的保證不是標準的一部分。 –

+0

@ŠimeVidas您指的是CSSOM API,Media Queries使用它(這是通過CSS完成的,與JavaScript DOM API無關)。在這方面,是的,屏幕是標準化的。 –