炼狱:window.createPopup()弹出提示tips

用DIV完美模拟createPopup 弹出窗口(脚本之家修正版),支持Firefox,ie,chrome 补增一个效果图! 模拟Popup body{ margin:0; padding:0; text-align:center; } #container{ margin:50px auto; padding:10px auto; } #popupcontent{ position:absolute; border:1px solid #000000; line-height:17px; background-color:#F7F7F4; visibility:hidden; cursor:defaul 立即下载

炼狱:window.createPopup()弹出提示tips


CCBS 系统增加了新的需求,给界面上的Text文本输入框和Select下拉框增加信息提示。
对于Text输入框来说,实现起来并不难:重载Text文本框的onmouseover事件,然后显示出Text文本框的title也就可以了。
但是,对于Select控件来说就远远没有这么简单了。首先Select本身没有Title属性!无疑增加了实现的难度。
在网上找了点资料后,发现window.createPopup()函数可以实现弹出式的tips,而且微软的技术支持网站也有这方面的例子(参见:http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm)。但是实现起来并不是那么一帆风顺的事情。
首先,window.createPopup()生成的窗口在显示的时候要手动指定该窗口的位置(x,y坐标),窗口的宽度和高度。而显示的内容是变化的,显示的字符串有长有短,窗口的长度和宽度也要跟着变化,如何实现呢?
其次,windows网页上的title属性在显示提示信息的时候是永远不会换行的,哪怕你显示的信息超过屏幕的显示范围它也不会顾忌到你的感受。windows标准就是我们的标准,我们也只能仿效了。
上面的两个问题着实让我困惑了一阵子,应该说是一个下午吧。不过最后问题还是得到解决了,虽然过程颇有些周折。
首先解决的是弹出窗口的指定位置,宽度和高度问题。窗口的位置就是响应鼠标事件的位置,但是该位置一定要区分清楚,鼠标如下几个位置的参数:clientX,clientY;offsetX,offsetY,screenX,screenY,x,y等。(具体每个位置的意义有单独的文章来解释)在这里应该是相对于响应控件的位置,使用的是offsetX,offsetY值。
要控制createPopuo()生成的窗口的宽度和高度,必须使用一个比较“土”的方法:首先调用oPopup.show(0,0,width,height)方法,马上获得该窗体的scrollWidth,scrollHeight,然后对该窗体隐藏:oPopup.hide()。获得具体的宽度和高度之后,再在具体的位置上显示真正的提示信息:
oPopup.show(x,y,scrollWidth,scrollHeight)。也就是说:在真正显示tips之前要调用一次显示方法获得实际的宽度和高度!这是解决问题的重点!!!
让显示的信息不换行的问题解决过程说难也不难,重要的是要能够想到该方法:使用table中的td不允许换行的属性:nowrap,那么包含在td中的内容就会一直显示出来,永远都不会换行了!!!
代码的范例如下:
 
var winPopup = window.createPopup(); //Create the window to popup
var winstr="<table style=/" border: 1 solid  #FFA6CA/" border=/"0/" width=/"100%/" height=/"100%/" cellpadding=/"0/" cellspacing=/"0/"  background=/"/" >";
 winstr+="<tr><td align=/"center/"><table width=/"100%/" height=/"100%/" border=/"0/" cellpadding=/"0/" cellspacing=/"0/">";
 winstr+="<tr><td nowrap id=/"tdMsg/" valign=/"center/" style=/"font-size:12px; color: red; face: Tahoma/"></td></tr></table></td></tr></table>";
winPopup.document.body.innerHTML = winstr;
var eventElement = null;
var xPos = 0;
var yPos = 0;
var timer = null;
/*************************************************************************
 Function Name:showPopupHelp
 Description:Popup a window that shows the content of text or select
 Input Parameter:None
 Output :None
 Return:None
 ***********************************************************************/
function showPopupHelp(helpMsg)
{
 initPopupWindow(helpMsg);
 eventElement = event.srcElement;
 xPos= window.event.offsetX;
 yPos= window.event.offsetY;
 timer = setTimeout("showPopupWindow()",1000);
}
/*************************************************************************
 Function Name:hidePopupHelp
 Description:Invisible the popup window
 Input Parameter:None
 Output :None
 Return:None
 ***********************************************************************/
function hidePopupHelp()
{
 clearTimeout(timer);
 winPopup.hide();
}
/*************************************************************************
 Function Name:initPopupWindow
 Description:Initilize the popup window,draw the frame
 Input Parameter:String to show
 Output :None
 Return:None
 ***********************************************************************/
function initPopupWindow(msgstr)
{
 winPopup.document.all('tdMsg').innerText = msgstr;
}
/*************************************************************************
 Function Name:showPopupWindow
 Description:Visible the popup window
 Input Parameter:None
 Output :None
 Return:None
 ***********************************************************************/
function showPopupWindow()
{
 winPopup.show(0,0,10,10);
 var h = winPopup.document.body.scrollHeight;
 var w = winPopup.document.body.scrollWidth;
 winPopup.hide();
 //var w = eventElement.offsetWidth;
 //var h = winPopup.document.body.scrollHeight;
 //var x = eventElement.style.left;
 //var y = eventElement.style.top + eventElement.offsetHeight;
 var x = xPos + 3;
 var y = yPos + 3;
 winPopup.show(x,y,w,h,eventElement);
 delete eventElement;
}
 

R语言中的Gamma分布函数 在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。 阅读详情

相关推荐

qmc5883p芯片坐标系方向定义

问题 最近一个项目用到qmc5883p, 然而确定磁力计方向的时候发现datasheet上写的不是很清楚, 并且example中还有一个设置方向的一步, 于是测试了芯片坐标方向并记录了下来; 该芯片和qmc5883L方向并不一致; 结果 qmc5883P的datasheet给出来如下说明, Y为笔者添加的; 但是这个方向是按照datasheet的example设置的结果: //Define the sign for X Y and Z axis qmc5883p_write_reg(0x2

时有限 4114

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

使用window.createPopup();做的简单下拉菜单 使用层做下拉菜单或者漂浮图片的话,最大的问题就是会被输入框等挡住,更别说框架,所以现在比较流行用window.createPopup();的说,它可以在页面所有元素之上,不存在被谁遮挡的问题。下面是刚写的一个简单的下拉菜单。代码很简单,很容易看懂,所以修改也方便。//首先定义两个数组,一个是菜单文字,一个是链接var Me

SmartJavaer的专栏 1543

CMIP6数据处理及在气候变化、水文、生态等领域中的应用

CMIP6、Biome-BGC、生态、气候变化、气象、水文、气候模式、植被、生态模式、遥感、极端气候、降水、WRF模式、动力降尺度、RCM、大气环流模型、贝叶斯模型、、降尺度

PhyliciaFelicia的博客 1544

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

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

xiangsuixinsheng的专栏 2600

Abaqus 2023 保姆级安装避坑指南:从环境变量到许可证配置,一次搞定

本文提供Abaqus 2023的详细安装指南,涵盖环境变量设置、许可证配置等关键步骤,帮助用户避开常见安装陷阱。通过系统环境检查、目录结构规划、许可证服务器安装及Java环境配置等实用技巧,确保顺利完成安装并优化软件性能。

weixin_42524276的博客 425

Grafana企业版vs开源版:从安装到插件管理的完整对比实测(含离线部署技巧)

本文深入对比Grafana企业版与开源版在安装流程、插件管理和功能限制等方面的差异,特别针对离线部署场景提供实用技巧。通过实测数据源支持、权限管理等核心功能,帮助企业用户做出明智选择,同时详细介绍离线安装和插件签名验证等关键操作。

weixin_29313817的博客 104

用DIV完美模拟createPopup 弹出窗口,支持Firefox,ie,chrome

最近要重构公司的一个站,有一个拾色器只支持IE,不支持FIREFOX CHROME等浏览器,花了点时间对照原来的重写了个。完美实现createPopup方法的弹窗效果,欢迎大家拍砖! 模拟Popup<!-- body{ margin:0; padding:0; text-align:center;}#container{ margin:50px

YIDAY的专栏 5316

python DEA: 基于非径向距离NDDF的Malmquist-Luenberger 指数及其分解

点赞发Nature 关注中Science Malmquist-Lenberger指数(ML指数)是距离函数与DEA计算中常用的指数,ML指数可以进一步分解为技术进步technological progress和效率改善effeciency change. 技术进步常被当做增长模型中的全要素生产率,用到许多计量经济研究中,探讨影响技术进步的环境变量。这里我分享一个考虑非期望产出下的NDDF方法计算ML指数。 该ML指数为global ML(区别于sequential ML) import numpy as

Cmmmmm丶的博客 5295

js中window.createPopup()方法以及attachEvent("onmouseover",OverFuncOne)实例

&lt;html&gt; &lt;body&gt; Internet Explorer 5.5支持一个新的window对象的方法:creatPopup()。你可以向下面一样创建一个弹出窗口: &lt;br&gt;   var popupObj = window.createPopup(); &lt;br&gt;   当你创建了这个对象后,弹出窗口并不显示。你必须要调用它的s...

335

matlab安装libsvm常见问题

matlab安装libsvm常见问题 libsvm的官网链接:LIBSVM -- A Library for Support Vector Machines.

cqujcy的博客 1535

一、【vmware虚拟机使用】安装vmware workstations17

本文介绍了VMware Workstation 17的安装与网络配置方法。主要内容包括:通过下载安装包进行标准安装(含许可协议、路径选择等步骤);重点讲解了NAT模式下的网络配置,包括修改子网IP为192.168.2.0网段、设置网关地址和DHCP范围等操作,以避免与主机网络冲突。文章还简要说明了VMware的Hypervisor核心技术原理,包括CPU、内存和存储虚拟化。最后指出完成这些准备工作后,后续将进行CentOS7系统的安装。整个流程配有详细图文说明,适合初学者跟随操作。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 2737

window.createPopup()

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

weixin_30562507的博客 229

Python 控制 Keysight N9010B/N9020/N9030 频谱仪

为什么要实现频谱仪的控制呢?起因是因为我司RF的同事们需要对通信模块进行GSM的带内杂散进行测试,由于该测试的频点涉及900多个,所以急需开发一款自动化测试工具。该工具需同时实现对无线通讯仪和频谱仪的控制,这篇文章主要介绍一下频谱仪的控制!做通信的应该对频谱仪都不陌生,不过我之前做的都是软件相关行业,所以我对频谱仪其实还是很陌生的;不过好在我的同时们都很热心,加上仪器的文档,一段时间下来,也算是熟悉了一些。

xgh1951的博客 1万+

解决element-ui el-select在移动端需要点击两次才能弹出下拉与选中,且在ios上点击浏览器左上角出现“全选”弹窗

解决element-ui el-select在移动端需要点击两次才能弹出下拉与选中,且在ios上点击浏览器左上角出现“全选”弹窗。

AwoCT的博客 1338

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

window.createPopup()用法以及短消息提示框代码

一、在做一个portal项目时,用户要求在门户首页上的待办信息要有明确的提示,且在浏览器最小化的情况下,当有新的待办信息时,也要做提示。用了alert方法、或者用div的方法都很难实现“在浏览器最小化的情况下弹出提示信息”。alert方法会把信息弹出在桌面的正中央,同时会被其它窗口挡住。用div的方法实现的提示框会依赖于父窗口,因为它本身就是html页面上的一部分。最后发现,用window.cre

C# 1586

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

记跨浏览器开发的案例

讲之前:由于目前公司的项目开发时间比较早,大概十几年前的东东了。最开始只支持IE,还是IE低版本,IE8、9、10、11、Edge都会有点问题。需求开发完后,做浏览器适配时候,主要是要兼容IE8-11,chrome,firfox,当然还有国产浏览器如360、qq、搜狗等。现总结下遇到的问题及解决方案。 1.eval(idName)问题:IE、Chrome浏览器下都可以使用eval(id...

weixin_38166557的博客 254

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

window.createPopup

Internet Explorer 5.5支持一个新的window对象的方法:creatPopup()。你可以向下面一样创建一个弹出窗口:   var popupObj = window.createPopup();   当你创建了这个对象后,弹出窗口并不显示。你必须

2101

ie11不兼容window.createPopup的问题解决

最近在做ie11的兼容性问题,每次都会因为window.createPopup这个已经不支持,而导致会报一些稀奇古怪的错误,比如,var popup=window.createPopup之后,popup这个对象无法使用popup.document.getElementById,会报SCRIPT438: 对象不支持“getElementById”属性或方法这个错,现在终于解决的,,只要在每次调用之前

BinZor的博客 1万+

window之createPopup方法

此方法为IE提供,在FireFox中不支持语法: oPopup = window.createPopup()返回值: oPopup :  对象(Object)。返回弹出窗口( popup )对象。说明: 建立一个弹出窗口( popup )。 弹出窗口( popup )初始化为隐藏模式。 当一个激活的对象导致弹出窗口( popup )显示时,此对象不会失去焦点。所以,对象建立一个弹出窗口( popu...

iteye_10902的博客 903

firefox中使用window.createPopup的问题

火狐中使用window.createPopup(),兼容ie的解决办法:if (!window.createPopup) { var __createPopup = function() { var SetElementStyles = function( element, styleDict ) { var style = element.style ; for (

battlehawk 1万+

18. Window createPopup() 方法

定义和用法 createPopup() 方法用于创建一个 pop-up 窗口。 语法window.createPopup()实例<html> <head> <script type="text/javascript"> function show_popup() { var p=window.createPopup() var pbody=p.document.body pbody.style.

enlyhua的专栏 1431

CreatePopup()函数的使用---弹出广告

函数介绍函数名:createPopup()使用的最要属性: PopMenu=window.createPopup(); PopMenu.document.body.innerHTML=;PopMenu.document.body.all.aaa.attachEvent("onclick",functionName);PopMenu.show(x,y,w,h,document.body)

ASP DOT NET 2178

【数据结构-5】单链表的实现

单链表,具体来说是单向的、不带头的、不循环的链表。链表由一个一个节点组成,每个节点分为数据域和指针域,数据域存放数据,指针域存放下一节点的地址。这样,就可以根据指针域中的地址找到下一个节点,节点就串起来了构成了单链表。

weixin_44218929的博客 161
上一篇: 如何快速实现HTML编辑器.NET组件
下一篇: 用JavaScript 记录用户在表单中所作的修改
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值