【JavaScript】允许IE8使用placeholder
var placeholder = function ($element) {
var $ = window.jQuery;
var version = parseFloat($.browser.version);
var isIE8 = $.browser.msie && version < 9;
var text = $element.attr("cm-placeholder") || $element.attr("placeholder");
if (isIE8) {
var $placeholderContainer = $element.closest("div");
$placeholderContainer.css({"position": "relative"});
window.setTimeout(function () {
var getFakePlaceHolder = function () {
var cmPlaceholderId = $element.attr("cm-placeholder-id");
var $fakePlaceholder;
if (cmPlaceholderId && cmPlaceholderId.length > 0) {
$fakePlaceholder = $placeholderContainer.find("#" + cmPlaceholderId);
if ($fakePlaceholder && $fakePlaceholder.length > 0) {
return $fakePlaceholder;
}
}
var cm_placeholder_id = uniqueId("cm-placeholder-");
var fakePlaceholder = '<span id="' + cm_placeholder_id + '" class="cm-placeholder">' + text + '</span>';
$fakePlaceholder = $(fakePlaceholder);
$placeholderContainer.append($fakePlaceholder);
$fakePlaceholder.on("click", function (e) {
e.stopPropagation();
$element.focus();
});
$element.on('focus', function () {
$fakePlaceholder.hide();
}).on('blur', function () {
showFakePlaceholderIfNoText();
});
$element.attr("cm-placeholder-id", cm_placeholder_id);
return $fakePlaceholder;
};
var $fakePlaceholder = getFakePlaceHolder();
var showFakePlaceholderIfNoText = function () {
if ($element.val() === '') {
var ep = $element.position();
var top = ep.top+2; //- wp.top;
var left = ep.left + 10; //- wp.left;
var height = $element.height() - 2;
$fakePlaceholder.css({
'top': top + 'px',
'left': left + 'px',
"height": height + "px",
"line-height": height + "px",
"display":"block",
"position":"absolute",
"color":"#999",
"font-size":"12px"
});
$fakePlaceholder.show();
} else {
$fakePlaceholder.hide();
}
};
showFakePlaceholderIfNoText();
}, 0);
} else {
$element.attr("placeholder", text || "");
}
};
【JavaScript】允许IE8使用placeholder的更多相关文章
- 让ie8支持 placeholder 属性
一. ie8支持 placeholder 属性 /* * ie8支持 placeholder 属性 */ $(function(){ if( !('placeholder' in document. ...
- IE8兼容placeholder的方案
用JavaScript解决Placeholder的IE8兼容问题 placeholder属性是HTML5新添加的属性,当input或者textarea设置了该属性后,该值的内容将作为灰色提示显示在文本 ...
- 【Javascript】IE8兼容 背景图片与a标签的onclick事件
先说几句牢骚话. 虽然IE8比之IE6.7有很大的进步,但是在执行效率.兼容性上仍然有很多问题.被广大开发者喜爱的平台才是好平台. 可惜多亏当年盗版XP打开中国的计算机市场,IE作为一款捆绑软件仍然在 ...
- 解决ie8下面placeholder显示问题
今天测试反馈一个bug,需要在ie8下面看到placeholder提示,开始的想法是对ie8进行降级处理,在ie8下面就不显示了. 现在测试反馈了,解决办法. function isLowIE() { ...
- 让IE8支持placeholder
$(function(){ if(!placeholderSupport()){ // 判断浏览器是否支持 placeholder $('[placeholder]').focus(function( ...
- javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:
开发和测试使用Chrome浏览器比较多,客户反馈某个页面打不开,自己用Chrome打开一切正常,用ie8打开,果然页面展现卡在那儿了,并且报了"缺少标识符.字符串或数字".查看是在 ...
- 原创-兼容IE8的placeholder
!function (o) { o.fn.extend({ PlaceHolder: function () { var _isEmpty = function (val) { return (val ...
- ie8中使用placeholder
placeholder 是 html5 中的新属性,考虑到还有不少 ie8 的用户,所以找了一个 ie8 的 placeholder 的补丁,如下: <script type="tex ...
- 使ie8正常支持placeholder
在IE8下测试,发现一个问题placeholder不被支持,下面是解决IE支持placeholder的方法,本文引用的jquery是1.12.0测试通过,先引用jquery <script ty ...
随机推荐
- JS/JQuery控制图片宽度
function changeImgWidth(){ for (i = 0; i <$('#info img').length; i++) { var imgWidth=$('#info img ...
- 两种不同的Context
本文转载于:http://blog.csdn.net/xiaodongvtion/article/details/8443772 这是两种不同的context,也是最常见的两种.第一种中context ...
- js里的原型
<script type="text/javascript"> function People(name){ this.name = name; //对象方法 this ...
- C函数之memcpy()函数用法
函数原型 void *memcpy(void*dest, const void *src, size_t n); 功能 由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始 ...
- /usr/bin/ld: cannot find -lz
同事在一台机器上新安装的CentOS,我拷贝一个项目在上面编译,老是报如下错误: “/usr/bin/ld: cannot find -lz” 说明:libz.so是有的,在/lib64下面 我设置环 ...
- Js中的window.parent ,window.top,window.self ,window.openner详解
在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...
- visual studio F12 失效,可能是装了插件,比如ReSharper 但是,ReSharper没有激活导致.
visual studio F12 失效,可能是装了插件,比如ReSharper 但是,ReSharper没有激活导致.
- Html下拉框的定义以及JS、Jquary取值、添加和移除
现在有一id=test的下拉框,怎么拿到选中的那个值呢? 分别使用javascript原生的方法和jquery方法 <select id="test" name=" ...
- Centos7下配置Tomcat7以指定(非root)身份运行
通常情况下,在配置Tomcat生产环境时,通常会配置Tomcat以特定的身份运行(非root),这样有利于提高安全性,防止网站被黑后的进一步权限提升. 本文依赖的环境: Ubuntu(其实大部分同样适 ...
- Android SingleTask与SingleInstance的区别
Android SingleTask与SingleInstance的区别 原文地址 现有2个项目,taskA.taskB.taskA负责调用taskB中指定的界面. taskB中有3个界面,a.b.c ...