input placeholder兼容ie10以下
代码如下:
if( /msie/.test(navigator.userAgent.toLowerCase()) && $.browser.version.slice(,) < ) {
$('input[placeholder]').each(function(){ var input = $(this); $(input).val(input.attr('placeholder')); $(input).focus(function(){
if (input.val() == input.attr('placeholder')) {
input.val('');
}
}); $(input).blur(function(){
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.val(input.attr('placeholder'));
}
});
});
}
其中
$.brower.msie = /msie/.test(navigator.userAgent.toLowerCase()) //$.brower jquery1.90以上被去除 Jquery 1.9.0 以上版本 扩展使用 $.browser 方法
由于jQuery 1.9.0 以上版本 jquery去掉了对 $.browser 的支持,采用$.support 来判断浏览器类型。导致之前的很多插件报错
"Uncaught TypeError: Cannot read property 'msie' of undefined".
网上有很多解决办法如:
判断浏览器类型:
- <span style="white-space:pre"> </span>$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());
- $.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());
- $.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());
- $.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());
号后面的表达式返回的就是 true/false, 可以直接用来替换原来的 $.browser.msie 等。 检查是否为 IE6:
// Old
- <span style="white-space:pre"> </span>if ($.browser.msie && 7 > $.browser.version) {}
// New
- <span style="white-space:pre"> </span>if ('undefined' == typeof(document.body.style.maxHeight)) {}
检查是否为 IE 6-8:
- <span style="white-space:pre"> </span>if (!$.support.leadingWhitespace) {}
**************************************************************************
下面 我们采取的思路是 使用jquery的继承机制 对jquery 1.11.1版本 进行扩展 使其支持 $.browser 方法,已达到兼容之前组件的目的.
- jQuery.extend({
- browser: function()
- {
- var
- rwebkit = /(webkit)\/([\w.]+)/,
- ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
- rmsie = /(msie) ([\w.]+)/,
- rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
- browser = {},
- ua = window.navigator.userAgent,
- browserMatch = uaMatch(ua);
- if (browserMatch.browser) {
- browser[browserMatch.browser] = true;
- browser.version = browserMatch.version;
- }
- return { browser: browser };
- },
- });
- function uaMatch(ua)
- {
- ua = ua.toLowerCase();
- var match = rwebkit.exec(ua)
- || ropera.exec(ua)
- || rmsie.exec(ua)
- || ua.indexOf("compatible") < 0 && rmozilla.exec(ua)
- || [];
- return {
- browser : match[1] || "",
- version : match[2] || "0"
- };
- }
将以上代码 保存成 jquery-browser.js 使用即可。
input placeholder兼容ie10以下的更多相关文章
- input placeholder 兼容问题
placeholder是html5出的新特性,ie9以下是不兼容的, 那么为了兼容ie9 我们需要对他做处理 //jq的处理方式$(function(){ jQuery('[placeholder] ...
- 兼容ie10以下版本的placeholder属性
<script src="${ctx }/js/jquery.placeholder.js" type="text/javascript">< ...
- IE9以下 placeholder兼容
//input placeholder兼容!(function ($, doc, win) { $.fn.placeholder = function () { var i = doc.createE ...
- 改进《完美让IE兼容input placeholder属性的jquery实现》的不完美
<完美让IE兼容input placeholder属性的jquery实现>中的代码在IE9以下浏览器中会出错,原因是因为ie9以下的浏览器对input的标签的解释不同. 例如对以下文本框的 ...
- 完美让IE兼容input placeholder属性的jquery实现
调用时直接引用jquery与下面的js就行了,相对网上的大多数例子来说,这个是比较完美的方案. /* * 球到西山沟 * http://www.cnzj5u.com * 2014/11/26 12:1 ...
- placeholder在不同浏览器下的表现及兼容方法 placeholder兼容
1.什么是placeholder? placeholder是html5新增的一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点(或 ...
- placeholder 兼容 IE
placeholder 是 html5 的新属性,仅支持 html5 的浏览器才支持 placeholder,目前最新的 FF.Chrome.Safari.Opera 以及 IE10 都支持,IE6- ...
- HTML5 input placeholder 颜色修改示例
Chrome支持input=[type=text]占位文本属性,但下列CSS样式却不起作用: CSS 复制代码 代码如下: input[placeholder], [placeholder], *[p ...
- placeholder兼容
<!------------placeholder兼容-------------><script type="text/javascript"> $( ...
随机推荐
- POJ3281Dining[最大流]
Dining Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16352 Accepted: 7307 Descripti ...
- Spring远程调用技术<3>-Spring的HTTP Invoker
前面提到RMI使用java标准的对象序列化机制,但是很难穿透防火墙. 另一方面,Hessian和Burlap能很好地穿透防火墙,但是使用私有的对象序列化机制. Spring提供的http invke ...
- @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别
1. RenderBody在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句:@Rend ...
- 初学C#和MVC的一些心得,弯路,总结,还有教训(4)--Cache 关于创建多个缓存实例
asp.net中的数据缓存可以用 HttpRuntime.Cache ,这个是大家都知道的,但如果缓存的数据比较多,又比较杂乱,想要把缓存分开管理(也就是创建多个缓存实例)应该怎么做呢... 于是常规 ...
- 你一无所知的CSS
也许标题有点夸大了.虽然不能完全保证大家都不知道这些,但是这也算是一个好机会检测下你是否知道或使用过下面的内容. Selectors Root :root { } 使用root可以让你在DOM中选择 ...
- Apache Shiro系列一,概述 —— 初识
一.什么是Shiro Apache Shiro是一个强大.灵活.开源的安全框架,它支持用户认证.权限控制.企业会话管理以及加密等. Apache Shiro的第一个也是最重要的一个目标就是易于使用和理 ...
- <转>卷积神经网络是如何学习到平移不变的特征
After some thought, I do not believe that pooling operations are responsible for the translation inv ...
- 反序列化问题的研究之java篇
博客园很早就开通了,当时下决心要把自己的经验心得记录上去,但是却没有做到,因为一直觉得自己搞得东西可能还是比较的初级,感觉拿不出手,所以也就是只是把它记录在在印象笔记上面(三年下来,还是整理和收藏了一 ...
- hibernate-cache
hibernate缓存分:一级缓存.二级缓存.三级缓存 一级缓存:Session内的缓存 实例: /*一级缓存: * session内的缓存 * */ @Test public void test1( ...
- Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法
最近在编写Python脚本过程中遇到一个问题比较奇怪:Python脚本完全正常没问题,但执行总报错"AttributeError: 'module' object has no attrib ...