`

IE select 控件总在div的上面显示的BUG修正

阅读更多
//xu.browser.ie.hacker IE hacker 
/**
 * 依赖文件 core.js array.js browser.js dom.js
 */
if (xu.browser.$IE){

	var arVersion = navigator.appVersion.split("MSIE");
	xu.browser.ie.version = parseFloat(arVersion[1]);
	arVersion = null ;
	/**
	 * <!--[if lte IE 6.5]>
	 * <script type="text/javascript" src="browser.ie.js"></script>
	 * <![endif]-->		
	 */
	xu.browser.ie.hacker.bgImgCache = function(){
		//启用 背景图片缓存
		try {
			document.execCommand("BackgroundImageCache", false, true)
		} catch (e) {}	
	} ;
	xu.browser.ie.hacker.pngFixed = function(){
		if ((xu.browser.ie.version >= 5.5) && (document.body.filters)) 
		{
	   		for(var j=0; j<document.images.length; j++){
	      		var img = document.images[j];
	      		var imgName = img.src.toUpperCase();
	      		if (imgName.substring(imgName.length-3, imgName.length) == "PNG"){
	         		var imgID = (img.id) ? "id='" + img.id + "' " : "";
	         		var imgClass = (img.className) ? "class='" + img.className + "' " : "";
		            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
		            var imgStyle = "display:inline-block;" + img.style.cssText ;
		            if (img.align == "left") imgStyle = "float:left;" + imgStyle;
		            if (img.align == "right") imgStyle = "float:right;" + imgStyle;
		            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
	         		var strNewHTML = "<span " + imgID + imgClass + imgTitle + " style=\"" + 
	         			"width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" + 
	         			"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" + 
	         			"(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" ; 
	         		img.outerHTML = strNewHTML ;
	         		j = j-1 ;
	      		}
	   		}
		}    
	} ;
	
	/**
	 * IE select 控件总在div的上面显示的BUG修正,这里使用隐藏select的方式,依赖下面这段代码
	 */
	var ie_select_bug = true ;
	xu.browser.ie.hacker.SelectBug = function(){
		this.select_array = $TagN('select') ;
		this.hadFixed = false ;
		this.doFix = function(){
			if (this.select_array && this.select_array.length > 0){
				xu.array.each(this.select_array,function(arr_e,index){
					arr_e.style.display = 'none';
					return arr_e ; 
				});
				this.hadFixed = true ;
			}
		};
		this.notFix = function(){
			if (this.hadFixed){
				xu.array.each(this.select_array,function(arr_e,index){
					arr_e.style.display = '';
					return arr_e ; 
				});
				this.hadFixed = false ;
			}
		};
		return this ;
	} ;
	var SelectBugFixed = new xu.browser.ie.hacker.SelectBug();
	
	xu.browser.ie.hacker.bgImgCache();
	xu.ready(function(){
		xu.browser.ie.hacker.pngFixed();
	});
}	
分享到:
评论
1 楼 vb2005xu 2009-11-05  
highlightWin: null , 
	showHighlightWin: function(){
		if (App.tic.hadUcren(this.toString() + "::showHighlightWin" )){
			if (!this.highlightWin){
				this.highlightWin = new Ucren.Window({			
					left: 170,top: 70,width: 400,height: 300,
					caption: "城市Highlight 管理",
					icon: "/sdo/public/images/ico.gif",
					panel: "pop_highlight",
					minButton: true,maxButton: true,cloButton: true,
					minWidth: 200,minHeight: 100,resizeAble: true,					
					onOpen: function(){
						if (SelectBugFixed){
							SelectBugFixed.doFix();
						}				
					} ,
					onClose: function(){
						if (SelectBugFixed){
							SelectBugFixed.notFix();
						}				
					} ,
					onResize: function(){
						//this.setCaption(this.width);
					}
				});
			}
			this.highlightWin.show();
		}
	} 

相关推荐

    解决 Ie 6下 select挡住div的通用函数

    /** * 让iframe 显示在 指定的div下面 针对ie6 select挡住div 的bug 采用 iframe来当作div的底 * * @param string divId 需要解决的div层 * @param string iframeId 采用的 IFRAME ,如果不指定 自动...

    IE6下div层被select控件遮住的问题解决方法

    在互联网的早期,尤其是IE6浏览器占据主导地位的时代,开发者们常常会遇到一个棘手的问题:在页面上,当一个`div`层位于`select`下拉框之上时,`select`控件会穿透`div`层显示出来,导致设计效果无法正常展现。...

    css+div 在IE中兼容

    在探讨“css+div在IE中兼容”的问题时,我们面临着一个历史遗留下来的挑战:Internet Explorer(以下简称IE)浏览器由于其版本迭代过程中对CSS支持的不一致性,导致在开发基于CSS布局的网站时,需要特别注意跨浏览器...

    IE6下Select元素被div等元素覆盖的解决办法

    但是IE6有一个神奇的逻辑,div 无法覆盖select,但是iframe 可以覆盖select,而div可以覆盖iframe,所以解决办法就是用Z轴高度更高的Iframe元素,包裹或覆盖住下拉列表框控件,使其回到正常的Z轴高度上来!...

    商用版本文本编辑器DotNetTextBoxV6.0.8Source 源码

    2)修正在带有中文目录的网站路径下使用控件会出现找不到路径的BUG! 3)修正控件上传目录初始设置不支持中文目录的BUG! 4)修正当三级或以上级别目录调用控件时图片相对路径转换不正确的BUG! 5)增加提取编辑器内容中...

    div+CSS 兼容小摘

    - **IE** 存在 Select 控件永远处于最上层的 bug,并且所有 CSS 对 Select 控件都不起作用。 #### 十三、Label 标签的支持 - **IE** 支持 Form 中的 Label 标签,包括图片和文字内容;**Firefox** 不支持包含图片的...

    DotNetTextBox V6.0.10 商业版 下载 (已知最新)

    2)修正在带有中文目录的网站路径下使用控件会出现找不到路径的BUG! 3)修正控件上传目录初始设置不支持中文目录的BUG! 4)修正当三级或以上级别目录调用控件时图片相对路径转换不正确的BUG! 5)增加提取编辑器内容中...

    ExtAspNet_v2.3.2_dll

    -修正CheckBox控件的CheckedChanged事件会被触发两次的BUG(Data PostBack-&gt;AutoPostBack, Event PostBack-&gt;EnablePostBack)。 -为TextBox,TextArea,DatePicker,NumberBox,TriggerBox等控件增加AutoPostBack属性...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正此函数通过PageContext.RegisterStartupScript调用时不能正确显示Icon的BUG(feedback:zhaowenke)。 -修正basic/hello.aspx示例在单独浏览器打开后,不能弹出对话框的BUG。 -隐藏示例首页最外层RegionPanel...

    浏览器兼容性问题1

    7. **表单元素bug**:例如label标签的支持限制、input元素与div的间距问题、输入框的背景滚动、select控件的层级问题,以及ID重复导致的getElementById()问题等,都给表单设计带来额外的复杂性。 解决这些问题通常...

    asp.net 自定义DropDownList(CustomDropDownList)(上一个有点bug)

    用DataGrid基于jQuery(实际上只用了它的按照类查找元素一个方法)写的自定义DropDownList,解决不能控制生成后的Select html控件不能控制zIndex而遮挡Div层及其他复杂样式,没有封装成dll,压缩包里是例子及所有用到...

    浏览器兼容性解决方法

    IE在处理`select`元素时存在bug,尤其是与CSS的交互。Firefox则更严格遵循标准,可能需要额外的CSS调整来确保一致的表现。 #### 13. Form元素与Label标签 IE允许`label`标签内包含图片和文本,而Firefox只支持图片...

    CSS种针对浏览器兼容问题的解决方法

    IE 对 Select 控件有一些已知的 Bug,需要特别注意其兼容性处理。 #### 12. 表单 Label 标签的兼容性 在处理表单中的 Label 标签时,IE 和 Firefox 的支持程度不同。IE 支持通过 Label 控件关联文本和图像内容,而...

    JS控件autocomplete 0.11演示及下载 1月5日已更新

    11. **IE中的div和select交互**:在Internet Explorer中,解决了div元素被select控件遮挡的问题,确保了在各种布局下的正常显示。 12. **方向键支持**:用户可以通过上下方向键选择列表中的建议项,增加了键盘导航...

    基于Bootstrap里面的Button dropdown打造自定义select

    在本文中,我们将探讨如何利用Bootstrap的Button Dropdown组件来创建自定义的select控件,以满足项目中的特定设计需求。Bootstrap是一款广泛使用的Web前端CSS框架,由Twitter开发,旨在简化和加速网页界面的设计与...

    jquery插件ajax方式实现百度谷歌文本框糊模查询

    jquery插件ajax方式实现百度谷歌文本框糊模查询 文本框的糊查询,支持本地数据源和ajax异步数据请求 支持文本框的状态,如果不是手工输入,而是通过选择...DIV在IE下不能挡住select object flash等标签的显示优先级问题

    BAT,WEB前段面试宝典

    对于旧版浏览器IE6存在一些已知的BUG,解决方法包括但不限于:双边距BUG可以通过display属性解决,PNG透明问题可以使用JavaScript代码更改,min-height可以通过添加important声明解决,以及select在IE6下遮盖问题...

    JQUBAR1.1 jQuery 柱状图插件发布

    新版本中修复了部分bug,并新增了一些实用的功能,使得柱状图插件的使用更加灵活和强大。 新增功能包括: 1. 可自定义坐标颜色:开发者可以设置柱状图中坐标轴的颜色,提供更好的视觉效果和个性化展示。 2. 可...

    调查表格

    - **下拉菜单**:`&lt;select&gt;`和`&lt;option&gt;`创建可下拉的选择列表。 - **提交按钮**:`&lt;input type="submit"&gt;`用于提交表单。 3. **表单控件的命名与分组** - `name`属性为每个输入元素分配一个唯一标识符,以便...

Global site tag (gtag.js) - Google Analytics