Acceso a marcos en el Modelo de objetos de documento HTML administrado
Actualización: noviembre 2007
Algunos documentos HTML están compuestos de marcos o ventanas que pueden contener sus propios documentos HTML distintos. El uso de los marcos facilita la creación de páginas HTML en las que una o más partes de la misma sean fijas, como una barra de exploración, mientras que otros marcos cambian su contenido constantemente.
Los programadores de HTML pueden crear los marcos en uno de dos maneras:
- Mediante las etiquetas FRAMESET y FRAME que crean ventanas fijas.
O bien
- Mediante la etiqueta IFRAME que crea una ventana flotante que se puede cambiar de posición en tiempo de ejecución.
Puesto que los marcos contienen documentos HTML, se representan en el Modelo de objetos de documento (DOM) como elementos de ventana y elementos de marco.
Cuando obtiene acceso a una etiqueta FRAME o IFRAME utilizando la colección Frames de HtmlWindow, estará recuperando el elemento de ventana correspondiente al marco. Esto representa todas las propiedades dinámicas del marco, como su actual dirección URL, documento y tamaño.
Cuando obtiene acceso a la etiqueta FRAME o IFRAME mediante la propiedad WindowFrameElement de HtmlWindow, la colección Children o métodos como GetElementsByName o GetElementById, estará recuperando el elemento de marco. Esto representa las propiedades estáticas del marco, incluso la dirección URL especificada en el archivo HTML original.
Marcos y seguridad
Obtener acceso a los marcos es complicado por el hecho de que el DOM HTML administrado implementa una medida de seguridad conocido como seguridad de secuencia de comandos entre marcos. Si un documento contiene un FRAMESET con dos o más FRAMEs en dominios diferentes, estos FRAMEs no pueden interactuar entre sí. En otras palabras, un FRAME que muestra el contenido de su sitio Web no puede obtener acceso a la información de un FRAME que aloje un sitio de otro fabricante, como por ejemplo http://www.adatum.com/. Esta seguridad se implementa en el nivel de la clase HtmlWindow. Puede obtener información general acerca de un FRAME que aloja otro sitio Web, como la dirección URL, pero no podrá obtener acceso a su Document o cambiar el tamaño o ubicación de su FRAME de alojamiento o en IFRAME.
Esta regla también se aplica a ventanas que se abren utilizando los métodos Open y OpenNew. Si la ventana que abre está en un dominio distinto del de la página alojada en el control WebBrowser, no podrá mover esa ventana ni examinar su contenido. Estas restricciones sólo se fuerzan si utiliza el control WebBrowser para visualizar un sitio Web distinto del utilizado para implementar su aplicación basada en formularios Windows Forms. Si utiliza la tecnología de implementación de ClickOnce para instalar su aplicación desde un sitio Web A y utiliza WebBrowser para visualizar un sitio Web B, no podrá obtener acceso a los datos del sitio Web B.
Para obtener más información sobre las secuencias de comandos entre sitios, vea About Cross-Frame Scripting and Security (https://msdn.microsoft.com/library/default.asp?url=/workshop/author/om/xframe\_scripting\_security.asp).
Vea también
Otros recursos
Utilizar el Modelo de objetos de documento HTML administrado