ie6(或者其他浏览器)使用dialog弹框访问(交互数据)服务器失败(artdialog -v5.0.4)

简介:        在网页开发中,网页弹框用于提示或者和用户交互是必要之一,方便用户使用和提高用户的体验。可弹框实现有多种办法,可是“jquery.ui.dialog.js”实现的弹框,在ie6或者使用专用网络或者用类似浏览器软件(本质是浏览器)访问服务器,可能导致客户端正确访问(发送和接受数据异常[null])服务器失败。        后来调查原因发现是专用网络(url)或者用类似浏览器软

       在网页开发中,网页弹框用于提示或者和用户交互是必要之一,方便用户使用和提高用户的体验。可弹框实现有多种办法,可是“jquery.ui.dialog.js”实现的弹框,在ie6或者使用专用网络或者用类似浏览器软件(本质是浏览器)访问服务器,可能导致客户端正确访问(发送和接受数据异常[null])服务器失败。

       后来调查原因发现是专用网络(url)或者用类似浏览器软件,导致dialog弹框提交数据失败。归根到底,就是因为,这些和dialog不兼容,那么去修改dialog还是???。

       解决问题,要么在之前基础上修改直到ok,要么用新的实现方式替代之前的(也就是,遇到问题有的时候解决还不如放弃之前,重新做一个呢)。   

       最终,发现了新的dialog实习方式,替代了jQueryUI实现的dialog,它就是artdialog,可是这个artdialog版本之间的差异很大,提供了很大的版本和css样式

(此处使用artdialog -v5.0.4版本):

       兼容:IE6+、Firefox、Chrome、Safari、Opera以及iPad等移动设备。并且IE6下也能支持现代浏览器的静止定位(fixed)、覆盖下拉控件、alpha通道png背景。

      artdialog各个版本的下载地址(可以选择branch下拉框,选择版本):

      https://github.com/aui/artDialog   

      http://code.google.com/p/artdialog/   (老版本)

     每个版本之间都有好多事例,并且index.html详细讲述使用用法(各种样式)和更新内容。

     在

     https://github.com/aui/artDialog/blob/5.0.4/README.md

     中,讲述了各个版本更新比较。

最终实现效果图(弹框颜色可自定义,文最后解释):--->图片显示不清,可保存查看!

 

artdialog的使用:

1.在页面 head 引入 artDialog 样式与脚本文件:

<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/artDialog-5.0.4/skins/default.css" />
<script type="text/javascript"  src="${pageContext.request.contextPath }/artDialog-5.0.4/source/artDialog.js"></script>
<script type="text/javascript"  src="${pageContext.request.contextPath }/artDialog-5.0.4/source/artDialog.plugins.js"></script>

      注:css样式(自己选择,也可做相应的修改),artdialog的js导入,在生产模式下,应该导入artDialog.min.js和artDialog.plugins.min.js或jquery.artDialog.min.js(此min只有代码,没有代码书写格式和整理,没有注释,节省空间)。

2.在js代码中,实现artdialog弹框显示:  

function getDialog(showMsg,callback){
	art.dialog({
	id: 'artdialoggg',
	lock:true,
//	height:350,  //auto,让内容自控制
//	width:400,
	title: '信息确认页',
	content: showMsg,
	initialize:function(){
	  setTableBgColor("userinfoshow");
	},
	button:[
        	{
        		value:'[确认]',
        		callback: function(){
        			this .dialog = close;
//		        	this.close();
        			cancelDialog();
        			callback();
        		}
        	},
        	{
        		value:'[取消]',
        		callback:function(){
        			this .dialog = close;
        			cancelDialog();
        		}
        	}
		        ]
	});
	$("#character").attr("disabled",true);
	$("#character").css("background-color","#E0E0E0");
}

 注:最简单的弹框代码就是:

	art.dialog({
	id: 'artdialoggg',
	lock:true,
	height:350,制
	width:400,
	title: '信息确认页',
	content: '我是内容已确认过了!',
	button:[
        	{
        		value:'[确认]',
        		callback: function(){
        			this .dialog = close;
        		}
        	},
        	{
        		value:'[取消]',
        		callback:function(){
        			this .dialog = close;

        		}
        	}
		        ]
	});

3:实现后,为了兼容ie6和其他浏览器,对代码做了相应的修改:

 问题:[1]: ie6下select层,没有被覆盖,也没被锁定,和artdialog锁定背景色不一致。

            [2]: 并且在有些浏览器下有artdialog的盒子黑框。

 解决[1]:在js中,加入,对select下拉框手动锁定和改变背景颜色:

	$("#character").attr("disabled",true);
	$("#character").css("background-color","#E0E0E0");

但在ESC退出和关闭“X”按钮的时候,背景色不返回,则,调用方法解决:

/**
 *ie6 artdialog ESC & cancel select operation
 * */
function cancelDialog(){
	//关于ie6下select无法锁定和变色,或其他问题处理
	$("#character").attr("disabled",false);
	$("#character").css("background-color","#FFFFFF");
}


上cancelDialog()方法,在点下“[确认]”、"[取消]"、ESC键按下,“X”按下使用都要调用(前两者都在上面artdialog代码中实现,后两者如下):

      修改artDialog.js:

      artdialog实现,就是一段html的table+css代码是相对的:

// XHTML 模板
// 使用 uglifyjs 压缩能够预先处理"+"号合并字符串
// @see	http://marijnhaverbeke.nl/uglifyjs
artDialog._templates = 
'<div class="d-outer" role="dialog" tabindex="-1" aria-labelledby="d-title-{id}" aria-describedby="d-content-{id}">'
+	'<table class="d-border">'
+		'<tbody>'
+			'<tr>'
+				'<td class="d-nw"></td>'
+				'<td class="d-n"></td>'
+				'<td class="d-ne"></td>'
+			'</tr>'
+			'<tr>'
+				'<td class="d-w"></td>'
+				'<td class="d-c">'
+					'<div class="d-inner">'
+					'<table class="d-dialog">'
+						'<tbody>'
+							'<tr>'
+								'<td class="d-header">'
+									'<div class="d-titleBar">'
+										'<div id="d-title-{id}" class="d-title"></div>'
+										'<a class="d-close" onclick="cancelDialog();" href="javascript:;" title="{cancelValue}">x</a>'
+									'</div>'
+								'</td>'
+							'</tr>'
+							'<tr>'
+								'<td class="d-main">'
+									'<div id="d-content-{id}" class="d-content"></div>'
+								'</td>'
+							'</tr>'
+							'<tr>'
+								'<td class="d-footer">'
+									'<div class="d-buttons"></div>'
+								'</td>'
+							'</tr>'
+						'</tbody>'
+					'</table>'
+					'</div>'
+				'</td>'
+				'<td class="d-e"></td>'
+			'</tr>'
+			'<tr>'
+				'<td class="d-sw"></td>'
+				'<td class="d-s"></td>'
+				'<td class="d-se"></td>'
+			'</tr>'
+		'</tbody>'
+	'</table>'
+'</div>';

代码中,在23行,“x”链接按钮中,加入“ onclick="cancelDialog();" ”来实现。

   ESC键键盘输入码为"27",将代码:

keyCode === 27 && api._click('cancel'); 

修改成为:

	if(keyCode === 27 && api._click('cancel')){
		cancelDialog();
	}

注:最终,可实现,artdialog覆盖select(视觉效果)。但在ie6下由于层覆盖原因,div覆盖iframe覆盖select,select在artdialog层之上,并未解决!!!。

css样式:

通过各种skins下css的对比,都有点不一样,都不是我想要的,但我所要的各css都有点,所以对chrome.css 和twitter.css 和default.css,进行了合并,完成了

css代码:

@charset "utf-8";
/*
 * artDialog skin
 * https://github.com/aui/artDialog
 * (c) 2009-2013 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://creativecommons.org/licenses/LGPL/2.1/
 */
 
/* common start */
body { _margin:0; _height:100%; }/*IE6 BUG*/ 
.d-outer { text-align:left; outline:none 0; }
.d-border, .d-dialog { border:0 none; margin:0; border-collapse:collapse; width:auto; }
.d-nw, .d-n, .d-ne, .d-w, .d-c, .d-e, .d-sw, .d-s, .d-se, .d-header, .d-main, .d-footer { padding:0; }
.d-header, .d-button { font: 12px/1.11 'Microsoft Yahei', Tahoma, Arial, Helvetica, STHeiti; _font-family:Tahoma,Arial,Helvetica,STHeiti; -o-font-family: Tahoma, Arial; }
.d-title { overflow:hidden; text-overflow: ellipsis; cursor:default;background:rgb(101, 153, 254); }
.d-state-noTitle .d-title { display:none; }
.d-close { display:block; position:absolute; text-decoration:none; outline:none; _cursor:pointer; }
.d-close:hover { text-decoration:none; }
.d-main { text-align:center; vertical-align:middle; min-width:9em; }
.d-content { display:inline-block; display:block\0/*IE8 BUG*/; display:inline-block\9\0; *zoom:1; *display:inline; text-align:left; border:0 none;  }
.d-content.d-state-full { display:block; width:100%; margin:0; padding:0!important; height:100%; }
.d-loading { width:96px; height:32px; text-align:left; text-indent:-999em; overflow:hidden; background:url(loading.gif) no-repeat center center; }
.d-buttons { padding:8px; text-align:right; white-space:nowrap; }
.d-button { margin-left:15px; padding: 0 8px; cursor: pointer; display: inline-block; min-height:2.2em; text-align: center; *padding:4px 10px; *height:2em; letter-spacing:2px; font-family: Tahoma, Arial/9!important; width:auto; overflow:visible; *width:1; color: #333; border: 1px solid #999; border-radius: 5px; background: #DDD; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#DDDDDD'); background: linear-gradient(top, #FFF, #DDD); background: -moz-linear-gradient(top, #FFF, #DDD); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFF), to(#DDD)); text-shadow: 0px 1px 1px rgba(255, 255, 255, .5);; box-shadow: 0 1px 0 rgba(255, 255, 255, .7),  0 -1px 0 rgba(0, 0, 0, .09); -moz-transition:-moz-box-shadow linear .2s; -webkit-transition: -webkit-box-shadow linear .2s; transition: box-shadow linear .2s; }
.d-button::-moz-focus-inner, .d-button::-moz-focus-outer { border:0 none; padding:0; margin:0; }
.d-button:focus { outline:none 0; border-color:#426DC9; box-shadow:0 0 8px rgba(66, 109, 201, .9); }
.d-button:hover { color:#C72015; border-color:#666; }
.d-button:active { border-color:#666; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#DDDDDD', endColorstr='#FFFFFF'); background: linear-gradient(top, #DDD, #FFF); background: -moz-linear-gradient(top, #DDD, #FFF); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#DDD), to(#FFF)); box-shadow:inset 0 1px 1em rgba(0, 0, 0, .6), inset 0 1px 1em rgba(0, 0, 0, .3); }
.d-button[disabled] { cursor:default; color:#666; background:#DDD; border: 1px solid #999; filter:alpha(opacity=50); opacity:.5; box-shadow:none; }
.d-state-highlight { color: #FFF; border: 1px solid #1c6a9e; background: #2288cc; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); text-shadow: -1px -1px 1px #1c6a9e; }
.d-state-highlight:hover { color:#FFF; border-color:#0F3A56; }
.d-state-highlight:active { border-color:#1c6a9e; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#33bbee', endColorstr='#2288cc'); background: linear-gradient(top, #33bbee, #2288cc); background: -moz-linear-gradient(top, #33bbee, #2288cc); background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#33bbee), to(#2288cc)); }
.d-mask { background:#E0E0E0; filter:alpha(opacity=70); opacity:.7; }
/* common end */

.d-inner { background:rgb(255, 255, 255); } /**body background color*/
.d-titleBar { width:100%; height:0; position:relative; bottom:26px; _bottom:0; _margin-top:-26px;}
.d-title { height:26px; line-height:23px; padding:0 60px 0 5px; color:#FFF; font-weight:700; text-shadow:0 1px 0 #000;background:rgb(101, 153, 254); }
.d-nw, .d-n, .d-ne, .d-w, .d-e, .d-sw, .d-s, .d-se { background:rgb(101, 153, 254); background:#6698fe\9!important; }/**title result center*/
.d-nw { width:5px; height:26px; background-position: -46px -8px; }
.d-ne { width:5px; height:26px; background-position: -53px -8px; }
.d-w { background-position:-60px 0; background-repeat:repeat-y; }
.d-e { background-position:-65px 0; background-repeat:repeat-y; }
.d-sw { width:5px; height:5px; background-position: -46px -2px;}
.d-se { width:5px; height:5px; background-position: -53px -2px;}
.d-close { padding:0; top:2px; right:5px; width:21px; height:21px; line-height:21px; font-size:18px; text-align:center; color:#FFFFFF; font-family: Helvetica, STHeiti; _font-family: Tahoma, '\u9ed1\u4f53', 'Book Antiqua', Palatino; border:1px solid transparent; _border:0 none; background:#c4eaff; border-radius:15px;  }/**color result center*/
.d-close:hover { color:#FFF; background:#C72015; border:1px solid #000; _border:0 none; box-shadow: 0 1px 0 rgba(255, 255, 255, .3), inset 0 1px 0 rgba(255, 255, 255, .3); }/**color result center*/
.d-content {font-size:12px;}  /**body font size*/
.d-n, .d-s { background-color:#F6F6F6; }
.d-n { background-position:0 top; }
.d-s { background-position: 0 bottom; background:rgb(101, 153, 254);}.d-buttons { background-color:#F6F6F6; border-top:1px solid #DADEE5; }
.d-state-noTitle .d-nw, .d-state-noTitle .d-ne, .d-state-noTitle .d-sw, .d-state-noTitle .d-se { width:3px; height:3px; }
.d-state-noTitle .d-inner { border:1px solid #666; background:#FFF; }
.d-state-noTitle { box-shadow:none; }
.d-state-noTitle .d-nw, .d-state-noTitle .d-n, .d-state-noTitle .d-ne, .d-state-noTitle .d-w, .d-state-noTitle .d-e, .d-state-noTitle .d-sw, .d-state-noTitle .d-s, .d-state-noTitle .d-se { background:rgba(0, 0, 0, .05); background:#000\9!important; filter:alpha(opacity=5)!important; }
.d-state-noTitle .d-titleBar { bottom:0; _bottom:0; _margin-top:0; }
.d-state-noTitle .d-close { top:0; right:0; width:18px; height:18px; line-height:18px; text-align:center; text-indent:0; font-family: Helvetica, STHeiti; _font-family: '\u9ed1\u4f53', 'Book Antiqua', Palatino; font-size:18px; text-decoration:none; color:#214FA3; background:none; filter:!important; }
.d-state-noTitle .d-close:hover, .d-state-noTitle .d-close:active { text-decoration:none; color:#900; }

/* css3 */
/*.d-state-focus {box-shadow:none;
		/*filter: progid:DXImageTransform.Microsoft.Shadow(color=’#FF0000′, Direction=135, Strength=5); background-color: #FF0000;/*for ie6,7,8*/ 
		/*	-moz-box-shadow:2px 2px 5px #FF0000;/*firefox*/ 
		/*	-webkit-box-shadow:2px 2px 5px #FF0000;/*webkit*/
		/*	box-shadow:2px 2px 5px #FF0000;/*opera或ie9*/
		/*	 box-shadow:0 3px 26px rgba(255, 0, 0, .9); }*/

上边,重要解析:

.d-mask { background:#E0E0E0; filter:alpha(opacity=70); opacity:.7; }

上此行css代码,为覆盖页面的背景色和透明度(此处为灰色的#E0E0E0)。

.d-nw, .d-n, .d-ne, .d-w, .d-e, .d-sw, .d-s, .d-se { background:rgb(101, 153, 254); background:#6698fe\9!important; }/**title result center*/

上此行css代码,artdialog框体的主背景。(此处为亮蓝色#6698fe,rgb(101, 153, 254);),由于做了ie6兼容,所以rgba的a和filter:alpha(opacity=70); opacity:.7;的透明度,去除了!

.d-inner { background:rgb(255, 255, 255); } /**body background color*/
.d-content {font-size:12px;}  /**body font size*/

上此行代码为artdialog的内容中的背景色(此处为白色rgb(255, 255, 255);)和字体大小(其他样式可自定义);

.d-title { overflow:hidden; text-overflow: ellipsis; cursor:default;background:rgb(101, 153, 254);}                             .d-title { height:26px; line-height:23px; padding:0 60px 0 5px; color:#FFF; font-weight:700; text-shadow:0 1px 0 #000; background:rgb(101, 153, 254); }
.d-s { background-position: 0 bottom;background:rgb(101, 153, 254); }

上此行css在firefox和chrome头和脚的颜色不显示解决(好像有点概率性,暂无解决)

.d-close:hover { color:#FFF; background:#C72015; border:1px solid #000; _border:0 none; box-shadow: 0 1px 0 rgba(255, 255, 255, .3), inset 0 1px 0 rgba(255, 255, 255, .3); }/**color result center*/
.d-button:hover { color:#C72015; border-color:#666; }

上此行为鼠标移上“X”关闭连接和按钮时候触发的变红效果(此处为#C72015)

.d-state-focus { box-shadow:0 3px 26px rgba(0, 0, 0, .9);  }

上此行代码向artdialog弹框添加一个阴影特效,也是在ie6下的那个黑色边框的原因,但ie6不支持box-shadow,所以无效,只要有都为黑色实心框。效果图:

代码:

.d-state-focus { box-shadow:0 3px 26px rgba(255, 0, 255, .6); }

 上行css代码为为artdialog添加透明度.6的的粉红色阴影。

目录
相关文章
|
2月前
|
存储 数据挖掘 Windows
服务器数据恢复—V7000存储raid5故障导致LUN无法访问的数据恢复案例
服务器数据恢复环境: 三台V7000存储,共有64块SAS硬盘(其中有三块热备盘,其中一块已启用)组建了数组raid5阵列。分配若干LUN,上层安装Windows server操作系统,数据分区格式化为NTFS文件系统。 服务器故障: V7000存储中有多块硬盘出现故障离线,阵列失效,LUN无法访问。需要恢复卷中所有数据(主要为dcm文件)。
|
4天前
|
人工智能 API 数据库
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
Browser Use 是一款专为大语言模型设计的智能浏览器工具,支持多标签页管理、视觉识别、内容提取等功能,并能记录和重复执行特定动作,适用于多种应用场景。
100 0
Browser Use:开源 AI 浏览器助手,自动完成网页交互任务,支持多标签页管理、视觉识别和内容提取等功能
|
1月前
|
负载均衡 数据可视化 API
像素流送api ue多人访问需要什么显卡服务器
本文总结了关于像素流送技术的五大常见问题,包括是否支持Unity模型推流、UE多人访问的最大并发数、所需服务器配置、稳定性问题及API支持情况,旨在帮助开发者更好地理解和应用这一技术。
53 1
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
52 3
|
1月前
|
存储 运维 算法
服务器数据恢复—raid6阵列硬盘重组raid5阵列如何恢复raid6阵列数据?
服务器存储数据恢复环境: 存储中有一组由12块硬盘组建的RAID6阵列,上层linux操作系统+EXT3文件系统,该存储划分3个LUN。 服务器存储故障&分析: 存储中RAID6阵列不可用。为了抢救数据,运维人员使用原始RAID中的部分硬盘重新组建RAID并进行了初始化。 初始化开始一段时间后,运维人员察觉到情况有异后强制终止初始化,这个时候初始化已经完成一半以上。数据部分已被不可逆的破坏。
|
1月前
|
域名解析 网络协议 前端开发
浏览器输入域名网址访问后的过程详解
1、以91处理网为例,客户端浏览器通过DNS解析到www.91chuli.com,IP地址是202.108.22.5,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到202.108.22.5,然后通过TCP进行封装数据包,输入到网络层。
74 2
|
2月前
|
存储 数据挖掘
服务器数据恢复—用RAID5阵列中部分盘重建RAID5如何恢复原raid5阵列数据?
服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障,用户方请人维修。维修人员在没有了解故障磁盘阵列环境的情况下,用另外4块硬盘(除去掉线的硬盘)重新创建了一组全新的RAID5阵列并完成数据同步,导致原raid5阵列数据全部丢失。
|
1月前
|
Web App开发 API Windows
取接口访问者信息[IP,浏览器,操作系统]免费API接口教程
此API用于获取访问者的IP地址、浏览器和操作系统信息,支持70多种浏览器和操作系统。通过POST或GET请求至`https://cn.apihz.cn/api/ip/getapi.php`,需提供用户ID和KEY。返回结果包括状态码、消息、IP、浏览器和操作系统信息。示例:{&quot;code&quot;:200,&quot;ip&quot;:&quot;175.154.88.178&quot;,&quot;browser&quot;:&quot;Chrome&quot;,&quot;os&quot;:&quot;Windows 10&quot;}。详情见官网文档。
|
2月前
|
JavaScript 前端开发
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
35 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件