使用window.createPopup();做的简单下拉菜单

用DIV完美模拟createPopup 弹出窗口(脚本之家修正版),支持Firefox,ie,chrome 最近要重构公司的一个站,有一个拾色器只支持IE,不支持FIREFOX CHROME等浏览器,花了点时间对照原来的重写了个。完美实现createPopup方法的弹窗效果,欢迎大家拍砖! 立即下载

使用window.createPopup();做的简单下拉菜单


使用层做下拉菜单或者漂浮图片的话,最大的问题就是会被输入框等挡住,更别说框架,所以现在比较流行用window.createPopup();的说,它可以在页面所有元素之上,不存在被谁遮挡的问题。

下面是刚写的一个简单的下拉菜单。代码很简单,很容易看懂,所以修改也方便。

<script language="JavaScript" type="text/JavaScript">
//首先定义两个数组,一个是菜单文字,一个是链接
var MenuText = new Array(3);
var MenuEven = new Array(3);
MenuText[1] = ["菜单11","菜单12","菜单13"];
MenuText[2] = ["菜单21","菜单21"];
MenuText[3] = ["菜单31","菜单321","菜单33"];

MenuEven[1] = ["url11","url12","url13"];
MenuEven[2] = ["url21","url22"];
MenuEven[3] = ["url31","url32","url33"];

//初始化一个oPopup对象

var oPopup = window.createPopup();

//这两个是获得表格绝对位置的方法,很有用的说
function getLeftIE(x,m) {
var dx=0;
if (x.tagName=="TD"){
dx=x.offsetLeft;
}
else if (x.tagName=="TABLE") {
dx=x.offsetLeft;
if (m) { dx+=(x.cellPadding!=""?parseInt(x.cellPadding):2); m=false; }
}
return dx+(x.parentElement.tagName=="BODY"?0:getLeftIE(x.parentElement,m));
}
function getTopIE(x,m) {
var dy=0;
if (x.tagName=="TR"){
dy=x.offsetTop;
}
else if (x.tagName=="TABLE") {
dy=x.offsetTop;
if (m) { dy+=(x.cellPadding!=""?parseInt(x.cellPadding):2); m=false; }
}
return dy+(x.parentElement.tagName=="BODY"?0:getTopIE(x.parentElement,m));
}

//显示菜单
function ButtonClick(node,t)
{
//首先得到鼠标所在的表格的位置
var left = getLeftIE(node,true)-8;
var top = getTopIE(node,true);
//定义打开的oPopup的宽度,高度
var width = 90;
var height = MenuText[t].length*20;
//清空oPopup的内容,否则每次调用都只会在后面接着写
oPopup.document.body.innerHTML = "";
var oPopBody = oPopup.document.body;
oPopup.show(left,top, width, height, document.body);
oPopup.document.open;
//让oPopup在鼠标离开时自动隐藏。
oPopup.document.write("<body leftmargin=0 topmargin=0 scroll=no style='border : 0 px;' onmouseover=clearTimeout(parent.popt); onmouseout=parent.popt=setTimeout('parent.oPopup.hide()',10);>");

//用document.write()写菜单内容
oPopup.document.write("<table width=100% height=100% style='border-collapse : collapse;'>");
for(var i=0;i<MenuText[t].length;i++)
{
oPopup.document.write("<tr><td background='image/topbg.gif' bgcolor=#cccccc style='border-top : #cccccc 1px solid;border-bottom : #666666 1px solid;border-left : #cccccc 1px solid;border-right : #666666 1px solid;mouse : hand; font-size : 12px; color:#000000;text-align : left;vertical-align : center;CURSOR: hand' onmouseover=this.bgColor='#C2D2E5'; onmouseout=this.bgColor='#cccccc'; height='20' onclick='parent.parent.main.location.href=/""+MenuEven[t][i]+"/"';>"+MenuText[t][i]+"</td></tr>");
}
oPopup.document.write("</table></td></tr></table>");
oPopup.document.write("</body>")
}


</SCRIPT>

主要方法就这么多,由于我使用了框架,所以菜单代码中链接打开位置是下面的框架“main"。用下面的语句调用菜单显示方法ButtonClick()

<td align="left" onMouseOver="ButtonClick(this,1)">菜单1</td>

在此点击鼠标,菜单就会在此格的上面出现。菜单内容是上面那个数组 MenuText[1] = ["菜单11","菜单12","菜单13"];在其他地方显示其他菜单时只要修改数组和调用时的数字就行了。  

科研智能体平台搭建与实战:大模型如何驱动科研自动化 大模型技术的快速发展,正推动AI智能体从单纯对话工具向主动执行任务的科研伙伴演进。智能体的核心原理在于整合模型调用、工具使用、知识库检索与工作流编排,使其能够自主拆解目标、执行操作并迭代优化。在科研场景中,这一技术价值尤为突出:文献初筛、实验数据清洗、代码调试、结果汇总等高频重复劳动均可实现自动化,大幅释放研究者精力。从基础组件配置到多智能体协同,从平台选型到提示词调优,实际落地需要关注模型匹配、工具稳定性、记忆管理与人机校验机制。本文基于真实工程经验,系统梳理科研智能体平台的搭建路径、应用案例与高频问题排 阅读详情

相关推荐

iOS自动化之打包-xcodebuild命令行打包.app并安装到ios模拟器

xcode xcodebuild xcrun ios模拟器 iOS UI自动化测试 ios自动打包安装到ios模拟器

z12347891的博客 5074

window.createPopup()

Popup窗口是IE5.5及以后版本提供的一个新feature: ·popup窗口在用户点击它自身之外的任何地方或另一个popup打开的时候会自动关闭; ·popup在显示的时候不能获得焦点,所以用户已focused的操作将继续在其父窗口中执行; ·组成popup的DHTML可以存储在其父document或其他的document元素中; ·popup窗口中不支持文本框一类的编辑框element; ...

weixin_30562507的博客 229

阿里巴巴达摩院人工智能训练师(高级)

阿里巴巴达摩院人工智能训练师(高级)

huang0612123的博客 1万+

JS 弹出层源兼容IE、FF、Chrome

function showWin(o1,o2){var mask=document.getElementById(o1);var popwin=document.getElementById(o2);//document.documentElement.scrollHeight

xiangsuixinsheng的专栏 2600

TLSv1.0与TLSv1.1安全漏洞深度解析与实战修复指南

本文深度解析TLSv1.0与TLSv1.1的安全漏洞,包括POODLE和BEAST攻击原理,并提供实战修复指南。通过禁用老旧协议、配置安全加密套件和网络层防护措施,有效提升系统安全性。文章还针对无法立即升级的场景,给出了补偿性防御方案,帮助管理员全面应对传输层安全风险。

weixin_29322855的博客 206

工程师职级胜任力框架

一、前言 尽管这些年国内的IT行业发展迅速,但是仍然欠缺一套比较综合性的面向工程师的职级胜任力框架,造成国内很多工程师大都一心只想成为技术大牛,而忽视了自己全方位的工程师职业素养和能力的培养。 最近我有幸读到了Circle CI公司分享的工程胜任力矩阵,发现这份文档就是一份比较贴合互联网研发型企业的工程师职级胜任力框架,于是我在它的基础上,重新整理出了一份更适合国内工程师阅读的《工程师职级胜任力框架》,并把它分享在波波的github站点上,希望这份文档对工程师的职业开发和成长有帮助。注,Circle CI.

架构师波波的专栏 6327

window.createPopup();

var oPopup = window.createPopup();var popTop=50;function popmsg(msgstr){var winstr="1.jpg/" >";winstr+=" ";winstr+=""+msgstr+"";oPopup.document.body.innerHTML = winstr;popshow();}function popshow(){wi

shiqiang124的专栏 2039

全球第一开源云ERP Odoo操作手册 模块安装和界面汉化指南

Odoo 的功能包含在不同的模块中, 刚创建的数据库除 Odoo 的核心模块外, 其它模块并没有被安装到系统中,你可以根据需要安装它们。本节将介绍安装模块和界面汉化的相关知识。

weixin_44793763的博客 2073

javascript---window.createPopup

在Web上使用菜单可以极大地节约页面的空间,同时也比较的符合用户从Windows上继承下来的UI操作体验。在以往的Web页菜单设计中,我们 普遍使用div嵌套table的方式来实现菜单,这样的菜单有个最致命的问题就是会被覆盖。我们为了解决这个问题,有时我们 干脆在显示图层菜单的同时隐藏页面上的所有下拉列表框,在菜单消失的时候,再显示他们。这个方法虽然可以解决问题,而其优化过后还可以只隐藏和下拉列表

Simplicity is more complicated than you think 6038

[SystemC]SystemC中的模块和程序

SystemC 中的层次结构是使用类 sc_module 创建的。sc_module 可以直接使用,也可以使用宏 SC_MODULE “隐藏”。上面的示例 SC_MODULE 创建了一个名为 nand2 的 sc_module 类对象。它的输出纯粹是输入值的函数。因此,模型可以使用最简单的 SystemC 进程,即 SC_METHOD。摘要:本节包含一个完整的简单设计,用于演示 SystemC 中模块和流程的使用。同样,重要的是要注意这不是典型的设计风格 - 但它很好而且易于理解。为什么要看模块和流程?

元直的博客 1867

运动控制软件:Siemens Sinamics二次开发_(6).通信接口与协议详解

PROFIBUSPROFINETModbus TCPCANopenEtherCAT每种通信接口都有其特定的应用场景和优势。选择合适的通信接口可以显著提高系统的性能和可靠性。在选择通信协议时,需要根据具体的应用场景和需求综合考虑。每种通信协议都有其特定的优势和局限性,因此在设计运动控制系统时,应选择最适合的协议,以确保系统的性能、可靠性、成本和维护性。通过以上对比和分析,希望开发者能够更好地理解和选择适合的通信接口和协议,从而优化运动控制系统的开发和应用。

2401_87715305的博客 898

使用window.createPopup创建无限级跨帧下拉菜单

先帖样子     使用层或者其他技术所实现的JS菜单不能解决的问题就是这些菜单不能跨帧,也就是说在Frame之间的时候无可奈何,所幸的是IE5+提供了createPopup这个函数,可以提供窗口的创建,首先介绍下creatPopup.Popup窗口是IE5.5及以后版本提供的一个新feature:·popup窗口在用户点击它自身之外的任何地方或另一个popup打开的时候会自动关闭; ·

Beau's Sky 2181

1、CUDA 编程基础

GPU计算的发展历程与重要性。首先回顾了计算机技术的发展,特别是摩尔定律的影响,强调了计算能力的快速提升。然而,随着晶体管尺寸的缩小和频率的停滞,单线程性能增长放缓。为了继续提升性能,多核处理器开始普及,促使软件开发者开始考虑并行计算。介绍了延迟导向设计和吞吐量导向设计的概念,CPU和GPU分别代表了这两种设计方法。GPU是吞吐量导向的,拥有众多弱小的ALU,通过流水线处理提高算术吞吐量。GPU的成功在于其高并行性和高吞吐量,以及能够分摊高昂的固定成本的大量销售额。

Justinyh的博客 579

window对象的学习(一)

window对象是javascript的内部对象,用于在浏览器上显示一个窗口。 我们平时最熟悉的alert函数就是window对象的一个方法。<!-- window.alert("hello,javascript!");// -->  除了alert弹出一个警告窗口外,window对象里的confirm弹出一个可以供用户选择"是"或"否"的的确认对话框,当然这

fableboy的学习点滴 588

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

跨frame显示下拉菜单

方案一(js): 参考文章:http://msdn2.microsoft.com/en-us/library/ms533025.aspx ------------------------------- 可以用window.createPopup()实现 网页跨框架菜单 from MSDN ////////////////////

nihaoma71121的专栏 4815

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

不被框架挡住的下拉菜单

框架优先级高于层,createPopup创建的窗口优先级高于框架,因此可以用它实现不被框架挡住的菜单。代码示例如下:  var oPopup = window.createPopup(); function showMenu() { var oPopBody = oPopup.document.body; oPopBody.style.backgroun

snow2076的专栏 3434

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

javascript(js),XML,DOM实现无限级下拉菜单,不会被任何标签或元素遮住

菜单的主要特性: 菜单实现的主要技术为Javascript, DOM, XML 不会被任何标签覆盖,一般的菜单会被SELECT,OBJECT等标签覆盖。 可以跨过框架,譬如一个frameset中有两个frame,上一个frame放菜单,下一个frame放具体内容,那么菜单可以悬浮于下一个frame之上。 在添加菜单数据时,通过指定父子菜单的ID来达

tiannet(曾次清)的专栏 2837

梅花雪脚本控件集:MzPopupLayer 可盖住flash的层基类

Subject: popup layer, cross browser(IE5.0+ Firefox Netscape Mozilla Opera)NameSpace:  System.Web.UI.WebControls.MzPopupLayer     网页里做脚本控件的时候经常需要一个层的依托,比如自定义的右键菜单层,下拉式菜单层,模拟窗口层,日期选择录入控件层等等,这些层一般的人都是以

meizz的专栏 1万+

根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考

在E8.Net平台中已经包含了根据Sitemap生成outlook风格菜单的全部源代码. 不过还有一些客户提出另一种下拉菜单的样式需求. 于是在E8.Net 上扩展了一种新的菜单实现模式. 如图例: 此菜单跟之前提供的outlook菜单一样来自于sitemap设置由于菜单是放在FrameSet中的一个frame上,因此弹出的子菜单不能用DIV的方式来实现,而是采用window.

spring888的专栏 347

跨帧 (frameset,freame,iframe) 的无限级菜单

跨帧 (frameset,freame,iframe) 的无限级菜单                              大家都知道在IE中,存在frameset,freame,iframe三种帧元素,他们在布局中运用广泛,而且也很实用,但是有时候使用起来还是有一些小麻烦。如你是做相关框架或者是企业管理软件的,需要使用到它来布局,那他的层级是最高的,也就是说他的z-index是最高的,那就

wodetiankong516的博客 2169

一般的JavaScript菜单会被DropdownList等遮住

一般的JavaScript菜单会被DropdownList等遮住 1. 可以使用window.createPopup([Args])实现弹出菜例子     :function PopUP(){ var winPopup = window.createPopup(); winPopup.document.open(); winPopup.document.write("abc"); wi

xingxing的专栏 629

根据sitemap配置生成无限级跨frame菜单的实现方式(含100%脚本源码参考)

在E8.Net平台中已经包含了根据Sitemap生成outlook风格菜单的全部源代码. 不过还有一些客户提出另一种下拉菜单的样式需求. 于是在E8.Net 上扩展了一种新的菜单实现模式. 如图例: 此菜单跟之前提供的outlook菜单一样来自于sitemap设置 由于菜单是放在FrameSet中的一个frame上,因此弹出的子菜单不能用DIV的方式来实现,而是采...

weixin_30832351的博客 71
上一篇: 用Javascript写的一个映射表类
下一篇: 编辑Div内内容
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值