JavaScript中的帧位置

JavaScript中的帧位置,javascript,popup,frame,mouse-position,Javascript,Popup,Frame,Mouse Position,我有一个框架为基础的网页与3帧。顶部衬里、左侧导航和右下角的内容框架 现在,我想在用户右键单击内容框时显示一个弹出菜单。因为div容器不能脱离框架,所以我的想法是,将整个框架页面放入一个新的iframe中。在该页面中,我可以有第二个iframe,这是我的弹出菜单 现在,我有了这个布局: <html> (start-page) <iframe (real content) <frameset top-frame navigation-

我有一个框架为基础的网页与3帧。顶部衬里、左侧导航和右下角的内容框架

现在,我想在用户右键单击内容框时显示一个弹出菜单。因为div容器不能脱离框架,所以我的想法是,将整个框架页面放入一个新的iframe中。在该页面中,我可以有第二个iframe,这是我的弹出菜单

现在,我有了这个布局:

<html> (start-page)
  <iframe  (real content)
    <frameset 
      top-frame
      navigation-frame
      content-frame
    >
  >
  <iframe> (my popup-menu, positioned absolutelly and hidden by default)
</html>
如您所见,“event.screenX”和“screenY”——变量不是我可以使用的变量,因为它们与主页无关


有什么想法吗?

我强烈建议您使用css将框架集切换到标准的DIV布局。这是一个很好的设置起点

我知道这可能不是你想听到的,但是框架除了你目前面临的弹出菜单问题外还有很多缺点。例如:

  • 由于框架集通常是地址中唯一可见的页面,因此框架很难或不可能正确添加书签
  • 通过在新的浏览器窗口中加载链接,很容易突破框架集。这意味着用户可能会失去导航或迷路
  • 它们不会在移动设备和纯文本浏览器上优雅地降级。css布局的一大优点是,即使没有打开任何样式,它们仍然可用

你说它是一个企业应用程序-你必须支持所有主流浏览器,还是IE就足够了

我这样问是因为IE有一个功能,它的工作原理与您所需要的完全相同:

window.createPopup(...)

即使在浏览器窗口外也可以看到弹出窗口!:-)


要显示它,请使用接受位置和大小参数的.show(…)方法(有关详细信息,请参阅MSDN)。好的是,你还可以传递一个对页面元素的引用,相对于该页面元素,位置是相对的,因此你可以很容易地相对于某个页面元素,某个框架定位弹出窗口,某些浏览器窗口,甚至相对于桌面。

如果您仅计划支持IE,您可以通过调用window.showModalDialog尝试使用新的模式窗口。 您可以将新窗口放置在屏幕上的任何位置

通常使用新窗口和模式窗口有很多缺点


顺便说一句-FF 3及以上也是

帧中的帧不是最佳解决方案。我建议您删除带有框架集定义的页面,并将其替换为带有iframe的页面。这样的话,你只能得到一层深度的画面。而且,因为你只在鼠标下使用window.event,所以它只能在IE中工作,也许在Opera中也可以。正如我在问题中所写的,我已经知道了“window.even”-问题-所以这只是一个测试代码没有什么最终…很好的事情-但这并不能解决问题:我应该在哪个位置弹出窗口?我添加了有关显示方法和相对位置的信息。这有用吗?
window.createPopup(...)