ExtJS布局浏览器兼容问题
在写ExtJS前台进行布局时由于ExtJS本身的布局管理器会产生默认的一些布局样式,但是由于不同浏览器的对不同ExtJS的解释不同造成了浏览器的兼容问题,这样需要我们在特定的地方设定特定的样式,以兼容不同的浏览器例如IE浏览器。
例1:Panle的html元素造成的浏览器不兼容
var leftpanel = new Ext.Panel({ columnWidth:.5, autoHeight:true, border:false, heigth:'100%', bodyStyle:'background:#D4E1F2;', layout:'fit', //只能在chrome中使用的方法 html:'<div style="height:100%;position:relative;top:100px;">' + '<div style="margin-left:40px;top:30px;font-size:25px;color:#008127;font-weight:bold;">' + 'xxxxxx测算系统' + '</div>' + '<div style="height:150px;font-size:15px;margin-left:40px;margin-top:10px;>' + '<p style="margin-top:10px;">1-以《xxxxxxxxxx》(UNFCCC)下“xxxxxxxxxx”的方法学模板为基础</p>' + '<p style="margin-top:10px;">2-xxxxxxxxxx(xx)xxxxx</p>' + '<p style="margin-top:10px;">3-xxxxxxxx《xxxxxxxxxxxxxx》</p>' + '</div>'+ '<div style="height:150px;margin-top:10px;margin-left:120px;">' + '<img alt="使用说明" id="instruction" src="./images/computer.png"/><span><a href="#">使用说明</a></span>' + ' '+ '<img alt="在线客服" id="service" src="./images/user_red.png"/><span><a href="#">使用说明</a></span>'+ '</div>'+ '</div>' });
这里有一些必要设的样式:style="height:150px;如果不设置在IE浏览器中将显示不出来,但是在chrome中可以显示出来。
例2:未设置相应的属性造成的浏览器不兼容,例如下的前台验证码在IE下不能正常显示
var formpanel = new Ext.FormPanel({ columnWidth:.5, autoHeight:true,//如果是100%相当于制定高需要设置为false buttonAlign:'left', bodyStyle:'background-color:#D4E1F2;', style:'margin:100px 5px 15px 40px;background:#D4E1F2;', height:'100%', border:false, items:[ { xtype:'label', text:'系统后台登陆', style:'margin-left:40px;font-size:25px;font-weight:bold;color:#008127;' },{ xtype:'textfield', fieldLabel:'用户名', labelStyle:'font-size:15px;text-align:right;top:5px;', name:'username', id:'username', style:'margin-top:10px', width:'200', allowBlank:'用户名不能为空', minLength:6, minLengthText:'用户名长度为[6-20]', maxLength:20, maxLength:'用户名长度为[6-20]' },{ xtype:'textfield', intputType:'password', fieldLabel:'密码', labelStyle:'font-size:15px;text-align:right;top:5px;', style:'margin-top:10px', name:'username', id:'passwd', width:'200', allowBlank:'用户名不能为空', minLength:6, minLengthText:'用户名长度为[6-20]', maxLength:20, maxLength:'用户名长度为[6-20]' },{ xtype:'textfield', fieldLabel:'验证码', labelStyle:'font-size:15px;text-align:right;top:5px;', id:'randCode', style:'margin-top:5px', name:'val', allowBlank:false, blankText:'验证码不能为空' } ], buttons:[ { text:'登陆', style:'margin-left:60px;margin-top:10px', handler:function() { if(!formpanel.getForm().isValid()) return; formpanel.getForm().submit(); } }, { xtype:'button', text:'重设', style:'margin-top:10px', handler:function() { if(!formpanel.getForm().isValid()) return; formpanel.getForm().submit(); } },{ text:'注册', style:'margin-top:10px', handler:function() { if(!formpanel.getForm().isValid()) return; formpanel.getForm().submit(); } } ] });//end_form
var rc = Ext.getDom("randCode");
var rcp = Ext.get(rc.parentNode);
rcp.createChild([{
tag:'span',
//height:'25px',
width:'100%',
autoHeight:false,
html:'<astyle="padding-left:5px;height:30px;"href="javascript:reloadcode();">'
},{
tag:'img',
//width:'70px',
height:'25px',
id:'img',
src:'CheckCodeServlet.do',
align:'absbottom'
生成验证码的代码:
package org.hj.sevlet.login; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.util.Random; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * @author DingJie */ public class CheckCodeServlet extends HttpServlet { private static final long serialVersionUID = 334172696087613109L; /** * 设定验证码位数 * @param size * @return */ private String getNumber(int size) { String str = ""; char[] chars = new char[36]; for (int i = 0; i < chars.length; i++) { chars[i] = (char) ('A' + i); if (i > 25) { chars[i] = (char) ((i - 26) + '0'); } } Random random = new Random(); for (int i = 0; i < size; i++) { str += chars[random.nextInt(chars.length)]; } return str; } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //设置缓存不保留 response.setHeader("Pragma","No-cache"); response.setHeader("Cahce-Control","no-cache"); response.setDateHeader("Expires",0); System.out.println("service running..."); // S1、创建一个内存映射对象 BufferedImage image = new BufferedImage(60, 20, BufferedImage.TYPE_INT_BGR); // S2、获得画笔 Graphics graphics = image.getGraphics(); // 给画笔上色 Random ran = new Random(); String number = getNumber(4);// 设定验证码4位数 HttpSession session = request.getSession(); session.setAttribute("number", number);//设置到session中 graphics.setColor(new Color(ran.nextInt(256), ran.nextInt(256), ran .nextInt(256))); // S3、设置背景色 graphics.fillRect(0, 0, 60, 20); // S4、绘画 // String number=ran.nextInt(99999)+""; graphics.setColor(new Color(0, 0, 0)); graphics.drawString(number, 10, 15); // 添加干扰线 for (int i = 0; i < 3; i++) { graphics.setColor(new Color(ran.nextInt(256), ran.nextInt(256), ran .nextInt(256))); graphics.drawLine(ran.nextInt(60), ran.nextInt(20), ran.nextInt(60), ran.nextInt(20)); } // S5、将图片压缩并发送到浏览器 // 设置content-type消息头,告诉浏览器返回的数据的类型 response.setContentType("image/jpeg"); OutputStream outputStream = response.getOutputStream(); javax.imageio.ImageIO.write(image, "jpeg", outputStream); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
最终效果:
相关推荐
标题中的“extjs 登录页面+验证码”表明我们要讨论的是使用ExtJS框架构建的一个登录页面,其中包含了验证码功能。ExtJS是一个流行的JavaScript库,用于构建桌面级的Web应用程序,它提供了丰富的用户界面组件和强大的...
ExtJS4图片浏览器是一款基于ExtJS4框架开发的用于展示和浏览图片的应用程序。ExtJS是一个强大的JavaScript库,专门用于构建富客户端Web应用程序。这款图片浏览器利用了ExtJS4的组件化、数据绑定和事件处理等特性,为...
在这个特定的场景中,我们要探讨的是如何在ExtJS中实现一个登录验证系统,特别是涉及到验证码的生成和验证。 验证码(CAPTCHA)是一种防止恶意自动化程序(如机器人)进行非法操作的安全机制。它通常要求用户输入...
在"Extjs4登录功能+验证码+struts2"这个主题中,我们将深入探讨如何利用ExtJS4构建一个带有验证码功能的登录界面,并结合Struts2后端框架实现数据验证和处理。 首先,登录功能是Web应用的基础部分,通常包含用户名...
标题中的“apring+extjs 数据库浏览器”指的是一个基于Spring框架和ExtJS库开发的数据库管理工具。这个工具允许用户以图形化的方式浏览和操作数据库,提供了对数据库的便捷访问和管理功能。 Spring是一个开源的Java...
标题中的“Extjs之--图片浏览器”指的是使用Ext JS框架构建的一个用于查看和浏览图片的应用程序。Ext JS是一个流行的JavaScript库,它提供了丰富的组件和工具,用于开发复杂的Web应用程序。这个图片浏览器可能是一个...
项目中遇到Extjs3.0在IE9中不兼容,现有两种解决方法
标题中的“extjs浏览器问题”指的是使用ExtJS框架在不同浏览器上出现的兼容性问题,特别是针对Internet Explorer(IE)浏览器出现的语法错误。ExtJS是一个用于构建富客户端Web应用程序的JavaScript库,它依赖于现代...
在本篇文章中,我们将深入探讨一个具体的技术问题:在ExtJS框架中,Google浏览器与DateField控件的不兼容性问题。这个问题对于那些正在使用ExtJS进行Web应用程序开发的开发者来说,是一个非常实用且需要解决的技术...
EXTJS 是一个基于JavaScript的富客户端应用框架,用于构建交互式、桌面级的Web应用程序。在给定的“EXTJS 强大的图片查看器 仿windows照片查看器”项目中,我们可以了解到,这个组件是EXTJS框架的一个扩展,旨在提供...
在Web开发中,浏览器兼容性问题常常困扰着开发者,尤其是涉及到JavaScript库如ExtJS时。本文将探讨如何解决一个常见的问题:ExtJS在Chrome和Firefox中正常显示,但在Internet Explorer (IE) 中无法正常加载。这个...
### Extjs 中关于 Cookie 的操作 #### 一、引言 在 Web 开发中,Cookie 是一种常用的数据存储方式,用于保存用户的一些基本信息或者状态,从而实现网站的个性化设置或登录状态保持等功能。Extjs 作为一种强大的 ...
ExtJS自带的控件如窗口、表格、表单等能够在主流浏览器中保持一致的显示效果,从而减轻了浏览器兼容性的负担。其简单而强大的API设计使得创建复杂的用户交互变得简单,比如通过EventManager进行用户事件监听和处理,...
通过使用ExtJs的控件,可以很好地控制浏览器的兼容性,使得不同浏览器中的控件显示几乎相同。这包括Internet Explorer 6+,Firefox 1.5+(PC,Mac),Safari 2+,Opera 9+(PC,Mac)等主流浏览器。 ExtJs还提供了...
在IT领域,特别是Web开发中,使用ExtJS框架进行用户登录界面的前端验证是一个常见的需求。根据提供的文件信息,我们可以详细解析如何利用ExtJS来实现这一功能。 ### ExtJS实现登录验证 #### 核心概念与流程 1. **...
这可能是由于多种原因引起的,包括网络连接问题、浏览器兼容性问题、文档资源加载错误或是ExtJS库本身的问题。以下是对这个问题的深入探讨和解决方案: 1. **网络连接问题**: 当API文档的服务器响应缓慢或网络...
对于跨浏览器兼容性测试,IE仍然是不可忽视的一部分。 - Firebug: 作为Firefox的插件,提供源代码查看、断点调试、性能分析等功能。 - Spket: 是一个强大的JavaScript开发工具,可以作为Eclipse插件使用,提供代码...
ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败。ExtJS4 已完全重新写 grid ...
总结这些资源,我们可以看出这个压缩包的内容主要集中在JavaScript的浏览器兼容性,尤其是针对ExtJS开发时可能遇到的问题。了解并掌握这些知识对于一个使用ExtJS的开发者来说至关重要,因为良好的浏览器兼容性是保证...