2011-09-07 28 views
9

MDN se explica cómo utilizar el objeto window.screen, pero también dice "DOM Level 0. Not part of specification."¿Es seguro usar window.screen?

W3Schools dice que window.screen.* propiedades son supported in all major browsers.

Si entiendo esto correctamente ... window.screen es completamente no estándar, pero no obstante es universalmente compatible. ¿Está bien?

Si este es el caso, ¿hay alguna diferencia entre navegadores que deba tener en cuenta, o puedo simplemente usarla? Estoy más interesado en screen.availWidth, por cierto.

+0

Si se desvía de las normas, su código podría aparecer en futuros navegadores. –

+1

La interfaz * Pantalla * se especifica en el estándar [Vista CSSOM] (http://www.w3.org/TR/cssom-view/#the-screen-interface). –

+0

El DOM se trata de documentos abstractos, por lo que no tiene noción de un dispositivo de salida real. En la práctica, cada navegador, por supuesto, tendrá que proporcionar un dispositivo de salida de algún tipo (aunque podría incluir la imagen 'wget' para incluir un motor de scripting DOM-bound que no tenga un dispositivo de salida). Es por eso que 'window' no está en el DOM (aunque bien puede estar estandarizado en otro lugar, como sugiere el enlace de Sime). –

Respuesta

4

Deberías estar bien con eso.

La razón por la que no forma parte de un estándar es porque DOM Nivel 0 se introdujo antes de que existieran los estándares. El DOM Nivel 0 también se denomina DOM Legacy, y se creó al mismo tiempo que NetScape 2.0 convertía el JavaScript en el navegador en realidad; en efecto, DOM Nivel 0 fue la primera especificación de DOM.

El DOM heredado existirá por mucho tiempo, si no, rompería la compatibilidad con una gran cantidad de scripts muy populares que ya existen.

EDITAR: En otras palabras, su comprensión es completamente correcta. No está "estandarizado", pero es completamente universal y lo seguirá siendo durante mucho tiempo.

+0

Pero * es * parte de un estándar ... '> _ <' –

+0

ventana es parte del estándar. La garantía de que la ventana se mantendrá en un objeto de pantalla no es parte del estándar. –

+0

@ Šime Vidas Te refieres a la API de CSSOM, que es utilizada por Media Queries (que se realiza a través de CSS y no tiene nada que ver con la API DOM de JavaScript). En ese sentido, sí, la pantalla está estandarizada. –

Cuestiones relacionadas