Domanda

Sto avendo una pagina web frame-based con 3 fotogrammi. Un topliner, una navigazione sul lato sinistro e una cornice di contenuti sul lato in basso a destra.

Ora, voglio mostrare un menu popup quando l'utente fa clic destro sul contenuto-frame. Perché un div contenitore non può uscire del telaio, la mia idea era, ponendo l'intera struttura-page in un nuovo iframe. In quella pagina ho potuto avere una seconda iframe che è il mio popup-menu.

Ora, sto avendo questo layout:

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

Nel mio tenore-frame Sto avendo un -Event "onmouseover" assegnato al corpo-tag. Questo evento dovrebbe aprire il pop-up-iframe al mouse posizione corrente. E proprio qui è il mio problema:? Come ottenere il mouse coordinate relativelly in alto a sito web (start-page nel mio progetto)

Al momento sto avendo questo mouseDown-funzione (funziona in IE solo, in questo momento - ma farlo funzionare in FF & Co non dovrebbe essere il 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;
  }    
}

Come si può vedere, la "event.screenX" e "screenY" - variabili non sono che le variabili che possono utilizzare, in quanto non sono relativi alla mainpage

.

Tutte le idee?

È stato utile?

Soluzione

Se sei solo intenzione di supportare IE - si può provare a utilizzare una nuova finestra modale chiamando window.showModalDialog. È possibile posizionare la nuova finestra qualsiasi punto dello schermo.

Ci sono molti svantaggi ad usare una nuova finestra, in generale, e di un modale uno a quello ...

Tra l'altro - 3 FF e fino anche supporta window.showModalDialog

Altri suggerimenti

È dire che è una delle applicazioni aziendali -? Devi supportare tutti i principali browser, oppure è sufficiente IE

Mi sto chiedendo questo perché IE ha una funzione che funziona esattamente come è necessario:

window.createPopup(...)

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

Il pop-up sarà visibile anche al di fuori della finestra del browser! : -)

Per vederlo, utilizzare il metodo .Show (...) che accetta posizionare e dimensionare argomenti (fare riferimento a MSDN per i dettagli). La cosa bella è, si può anche passare un riferimento a un elemento della pagina rispetto al quale la posizione è relativa, in modo da poter facilmente posizionare il popup relativo ad un certo elemento della pagina, determinato periodo, determinata finestra del browser o anche relativamente al desktop .

Raccomando caldamente il passaggio vostro frame a un layout DIV standard utilizzando i CSS. Ecco un buon punto di partenza per la creazione di un sacco di differenti layout CSS .

So che questo potrebbe non essere ciò che si desidera ascoltare, ma fotogrammi hanno un sacco di inconvenienti oltre al problema menu a comparsa che si sta di fronte. Per esempio:

  • Le cornici sono difficili o impossibili da segnalibro correttamente in quanto il set di frame è di solito l'unica pagina che è visibile l'indirizzo.
  • È molto facile da uscire da un frame caricando un link in una nuova finestra del browser. Ciò significa che un utente potrebbe perdere la loro navigazione o di perdersi.
  • Non si degradano con grazia su dispositivi mobili e browser di solo testo. Un grande vantaggio per i layout CSS è che anche senza gli stili accesi, sono ancora utilizzabili.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top