ie浏览器

java设计模式--简单工厂模式

夙愿已清 提交于 2019-12-02 15:58:50
简单工厂设计模式 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。 核心知识点如下: (1) 大量共同定义的接口。 (2) 由不同的对象去实现该接口。 (3) 子类(具体工厂类)决定实例化哪一个类(具体产品类)有着“一对一”的关系。 前言(也算是工厂的一个应用需求场景吧) 最近在构建自动化测试平台,公司需求是:必须在IE,火狐,Google浏览器下回归测试用例。Selenium的webdriver支持以上浏览器。在返回浏览器WebDriver对象时,刚好和工厂模式设计契合。于是又回顾了一下工厂模式,留下笔记分享给工厂模式学习者和自动化测试平台的构建者,理解不足之处请各位大神不吝赐教。 1,定义WebDriver(这里是为了说明工厂模式,简单的模拟Selenium的webdriver,Selenium的Jar中有此类) package factory; /** * 简单的模拟 WebDriver的几个功能来说明工厂模式问题 * Selenium的Jar中有此类,且方法远远多于此 * @author Administrator * */ public interface WebDriver { //打开页面 public void openURL(String prmUrl); /

Nginx 屏蔽IE浏览器

白昼怎懂夜的黑 提交于 2019-12-02 04:26:25
搞过前端的估计都碰到最头疼的问题就是浏览器兼容性问题了,特别是针对IE浏览器。往往前端为了省事就搞一个页面提示用户升级浏览器或者显示简单的静态页面。那接下来就需要运维来配置nginx rewrite规则了。 在这里直接贴出配置实例 ? 1 2 3 4 5 6 7 8 server { listen 80; server_name xxx.xxx.com; root /www ; if ( $http_user_agent ~* "MSIE [6-9].[0-9]") { rewrite /ie.html break; } } 解释一下上面的配置 $http_user_agent 客户端agent信息(这个是浏览器的标识,如果你开了访问日志的话,可以去看一下。每种浏览器的标识可能都不一样。) ~* 使用正则表达式,并且不区分大小写 MSIE [6,7].[0-9] MSIE-IE浏览器的标识,这里匹配的是IE浏览器在版本在6到9的,例如6.1,7.0,8.2等等··· rewrite /ie6.html 只要匹配则返回指定的静态页面 break 停止执行当前这一轮的ngx_http_rewrite_module指令集 如果需要验证是否生效的话,这里提供一个比较方便的工具 IETester ,可以模拟IE任意版本的浏览器来测试 nginx全局变量 ? 1 2 3 4 5 6 7 8 9

兼容Firefox(火狐)浏览器和IE浏览器的收藏代码

不打扰是莪最后的温柔 提交于 2019-12-01 15:09:00
最近改用Firefox后,发现很多网站的“加入收藏”链接点击无效了,后来发现原来是IE浏览器和Firefox浏览器的“加入收藏夹”的写法是不同的。 1、IE浏览器加入收藏夹的代码 window.external.addFavorite(sURL, sTitle); 参数: sURL:添加到收藏夹的完整网站页面地址 sTitle:添加到收藏夹中的网站页面标题名称。 示例: <a href='#' onClick="javascript:window.external.AddFavorite('http://www.sdi1.com', '白金帐号主题站');">加入收藏</a> 2、Firefox浏览器加入收藏夹的代码 Firefox中叫做加入书签(收藏夹),代码有两种方式,一种同IE浏览器的方法类似,只不过是window.external.AddFavorite换成了sidebar.addPanel,另外一种却十分简单,只需要加一个参数就可以了。 第一种方法: window.sidebar.addPanel(sTitle, sURL, ""); 参数 sURL:收藏的网站页面完整连接 sTitle:收藏网站页面的名称 示例: <a href='#' onClick="javascript:window.sidebar.addPanel('白金帐号主题站','http://www

nginx 利用 rewrite 屏蔽IE浏览器

旧城冷巷雨未停 提交于 2019-11-30 23:54:02
搞过 前端 的估计都碰到最头疼的问题就是浏览器兼容性问题了,特别是针对IE浏览器。往往前端为了省事就搞一个页面提示用户升级浏览器或者显示简单的静态页面。那接下来就需要运维来配置nginx rewrite规则了。 在这里直接贴出配置实例 server { listen 80; server_name xxx.xxx.com; root /www ; if ( $http_user_agent ~* "MSIE [6-9].[0-9]") { rewrite /ie.html break; } } 解释一下上面的配置 $http_user_agent 客户端agent信息(这个是浏览器的标识,如果你开了访问日志的话,可以去看一下。每种浏览器的标识可能都不一样。) ~* 使用正则表达式,并且不区分大小写 MSIE [6,7].[0-9] MSIE-IE浏览器的标识,这里匹配的是IE浏览器在版本在6到9的,例如6.1,7.0,8.2等等··· rewrite /ie6.html 只要匹配则返回指定的静态页面 break 停止执行当前这一轮的ngx_http_rewrite_module指令集 如果需要验证是否生效的话,这里提供一个比较方便的工具 IETester ,可以模拟IE任意版本的浏览器来测试 nginx全局变量 $args #这个变量等于请求行中的参数。 $content

IE浏览器http请求,中文传参报400错误-解决方法

你说的曾经没有我的故事 提交于 2019-11-30 14:04:05
做项目的时候,遇到一个小的问题.一个get请求列表数据的接口,在其它浏览器上是可以正常请求的.但是在ie浏览器上确出现奇怪的http请求400错误,其含义是你访问的页面域名不存在或者请求错误,自己的本地,肯定没问题.那就是请求错误了.几经尝试发现是参数带中文的会出现此种情况,没带中文的没有问题. 如图(不带中文的参数返回的内容): 如图(带中文的参数): 以上可以发现,如果传参是中文的接口,返回是400,其余的参数都可以正常请求。 解决方法:将传递的参数进行编码,然后传递给后台,js编码encodeURI(中文参数), //获取菜单列表数据 getMenulist: function() { let that = this; //兼容IE浏览器相同接口,有缓存,需要添加时间戳 let time=new Date().getTime(); //兼容IE浏览器传递中文,解码后可以正常请求 let name = encodeURI(that.menuName); that.axios.get(api + '/sysmenutree/select2?treename=' +name+'&time='+time).then(function(response) { var flag = response.data.flag; var data = JSON.parse(response

IE浏览器远程代码执行漏洞(CVE-2019-1367)

我与影子孤独终老i 提交于 2019-11-30 12:28:09
【漏洞预警】IE浏览器远程代码执行漏洞(CVE-2019-1367)预警通告 预警编号:NS-2019-0042 2019-09-24 TAG: IE、远程代码执行、CVE-2019-1367 漏洞危害: 高, 攻击者利用此漏洞,可造成远程代码执行。 版本: 1.0 1 漏洞概述 当地时间 9月 23 日,微软官方发布了一则“IE浏览器累积安全更新”,修复了Internet Explorer中的一个远程代码执行漏洞(CVE-2019-1367)。该漏洞存在于脚本引擎处理IE内存对象的过程中,攻击者可利用此漏洞制定恶意网站,当受害者使用IE访问该网站即可执行任意代码,从而获取系统控制权。 目前微软官方已经发布修复补丁,请相关用户及时进行更新。 参考链接: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-1367 https://support.microsoft.com/zh-cn/help/4522007/cumulative-security-update-for-internet-explorer 2 影响范围 受影响版本 Internet Explorer 9 Internet Explorer 10 Internet Explorer 11 3漏洞防护 3.1 官方补丁

判断是否是IE浏览器

寵の児 提交于 2019-11-28 02:46:37
在我们开发页面中总会遇到解决兼容问题,一般通过css hack根据不同浏览器写不同的css,或者判断浏览器加载不同的模块。在这里我们将分享判断ie的方法 一、IE条件注释(h5方法) IE的判断写法只兼容到IE9,IE10及其以上只能显示非IE的注释内容 <!--[if lt IE 7 ]> 小于IE <![endif]--> <!--[if IE 7 ]> IE7 <![endif]--> <!--[if IE 8 ]> IE8 <![endif]--> <!--[if IE 9 ]> IE9 <![endif]--> <!--[if (gt IE 9)|!(IE)]>IE9以上或者非IE<![endif]--> 二、js判断 在IE浏览器之前,一般通过MSIE来判断,但IE之后判断就有些变化了。通过浏览器自带的navigator.userAgent方法做相应的判断。 1.区分IE和其他主流浏览器 function isIE() { return navigator.userAgent.toLowerCase().indexOf('trident')>-1?true:false; } 或者 function isIE(){ if(!!window.ActiveXObject || "ActiveXObject" in window){ return true; }else{

css相关IE的问题 如width等

自作多情 提交于 2019-11-27 20:34:58
使用CSS hack进行设置。CSS hack的目的就是使你的CSS代码兼容不同的浏览器。当然,我们也可以反过来利用CSS hack为不同版本的浏览器定制编写不同的CSS效果。 1.原理   由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。   CSS Hack大致有3种表现形式,CSS类内部Hack、选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针对类内部Hack:比如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",而firefox两个都不能认识。等等   选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。等等   HTML头部引用(if IE)Hack:针对所有IE:<!--[if IE]><!--您的代码--><![endif]-->,针对IE6及以下版本:<!--[if lt IE 7]><!--您的代码--><![endif]-->,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。   书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。 2

IE浏览器的脚本错误通知功能

女生的网名这么多〃 提交于 2019-11-27 16:52:34
时下,很多浏览器为了追求更好的用户体验,纷纷通过禁用页面脚本错误提示、智能解析错误脚本等方法来提高浏览器的性能,但这恰恰是我们在进行项目开发和功能测试时所不愿接受的,因为很多代码错误(特别是JS脚本错误)会被浏览器屏蔽或智能解析而不给出提示,给我们的开发带来潜在的bug风险。昨天本人在测试修改之后的TD问题时,发现IE浏览器的一个显示脚本错误通知的功能,在此与大家分享。 1. 在 IE 浏览器的设置中打开 Internet 选项,如下: 2. 在“高级”选项卡的设置中勾选“显示每个脚本错误的通知”,并取消勾选“显示友好 http 错误信息”,之后点击确定生效。 3. 打开含有脚本错误的页面,在触发到错误的脚本时,浏览器会弹出错误通知(注:通知中提到的行号对应的是源文件中的行号,可以在页面中右键“查看源文件”进行查看)。如果取消高级选项卡中的“显示每个脚本错误的通知”或者选用其它没有类似功能的浏览器,则不会提示该错误,开发中的脚本错误便不容易被察觉。所以建议各位在进行测试时可以考虑使用这种方法。 来源: CSDN 作者: 新的一页 链接: https://blog.csdn.net/xindeyiye123/article/details/8223388

IE浏览器中判断IE版本

别说谁变了你拦得住时间么 提交于 2019-11-27 12:38:22
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![endif]--> <!--[if IE 6]> 仅IE6可识别 <![endif]--> <!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]--> <!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]--> <!--[if IE 7]> 仅IE7可识别 <![endif]--> <!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]--> <!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]--> <!--[if IE 8]> 仅IE8可识别 <![endif]--> <!--[if IE 9]> 仅IE9可识别 <![endif]--> 项目 范例 说明 ! [if !IE] The NOT operator. This is placed immediately in front of the feature, operator, or subexpression to reverse the Boolean meaning of the expression. NOT运算符。这是摆立即在前面的功能