Pregunta

Estoy teniendo una página web basada en tramas con 3 marcos. Un topliner, una navegación en el lado izquierdo y un marco de contenido en la parte inferior derecha.

Ahora, quiero mostrar un campo desplegable cuando el usuario hace clic sobre el contenido del marco. Debido a que un div contenedor no puede salir del marco, mi idea era, colocando el conjunto de cuadro de página en un nuevo marco flotante. En esa página podría tener un segundo marco flotante que es mi campo desplegable.

Así que ahora, estoy teniendo este diseño:

<html> (start-page)
  <iframe  (real content)
    <frameset 
      top-frame
      navigation-frame
      content-frame
    >
  >
  <iframe> (my popup-menu, positioned absolutelly and hidden by default)
</html>

En mi contenido fotograma Estoy teniendo un -Evento "onmouseover" asignado al cuerpo-tag. Este evento debe abrir la ventana emergente en marcos flotantes en la posición actual del ratón. Y precisamente aquí es mi problema:? Cómo obtener las coordenadas del ratón a la parte superior relativelly-sitio web (puesta en página de mi proyecto)

Actualmente estoy teniendo esta mouseDown-función (funciona en IE sólo, en este momento - pero conseguir que funcione en FF & Co no debe ser el problema ...)

function mouseDown(e)
{
  if (window.event.button === 2 || window.event.which === 3) 
  {
    top.popupFrame.style.left = event.screenX + "px";
    top.popupFrame.style.top = event.screenY + "px";
    top.popupFrame.style.display = "";
    return false;
  }    
}

Como se puede ver, el "event.screenX" y "screenY" - variaciones no son tan variables que puedo usar, porque no son relativas a la MainPage

.

¿Alguna idea?

¿Fue útil?

Solución

Si sólo está planeando para apoyar IE - puede probar a usar una nueva ventana modal llamando window.showModalDialog. Puede colocar la nueva ventana en cualquier lugar de la pantalla.

Hay muchas desventajas a usar una nueva ventana en general y un referente en eso ...

Por cierto - FF 3 y hasta también apoya window.showModalDialog

Otros consejos

decir que es una aplicación empresarial -? Qué tiene que soportar todos los principales navegador, o es lo suficientemente IE

Lo pregunto porque el IE tiene una función que funciona exactamente igual que lo que necesita:

window.createPopup(...)

http://msdn.microsoft.com/ en-us / library / ms536392 (VS.85) .aspx

La ventana emergente será visible incluso fuera de la ventana del navegador! : -)

Para demostrarlo, utilizar el método .show (...) que acepta argumentos de posición y tamaño (consulte MSDN para más detalles). Lo bueno es que, también puede pasar una referencia a un elemento de página en relación con los cuales la posición es relativa a, por lo que se puede colocar fácilmente la ventana emergente en relación con un determinado elemento de página, determinado marco, cierta ventana del navegador o incluso relativamente al escritorio .

No te recomiendo el cambio de su conjunto de marcos a un diseño estándar utilizando DIV CSS. Aquí es un buen punto de partida para la creación de un montón de diferentes diseños CSS .

Sé que esto puede no ser lo que quiere oír, pero los marcos de tener una gran cantidad de inconvenientes además del problema menú emergente la que estás mirando. Por ejemplo:

  • Los marcos son difíciles o imposibles de marcar correctamente ya que el conjunto de marcos es generalmente la única página que es visible en la dirección.
  • Es muy fácil de salir de un conjunto de marcos mediante la carga de un enlace en una nueva ventana del navegador. Esto significa que un usuario podría perder su navegación o perderse.
  • No se degradan con gracia en los dispositivos móviles y navegadores de sólo texto. Una gran ventaja para diseños de CSS es que, incluso sin ningún tipo de estilos encendidos, son usables.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top