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的更多相关文章

  1. 让ie8支持 placeholder 属性

    一.  ie8支持 placeholder 属性 /* * ie8支持 placeholder 属性 */ $(function(){ if( !('placeholder' in document. ...

  2. IE8兼容placeholder的方案

    用JavaScript解决Placeholder的IE8兼容问题 placeholder属性是HTML5新添加的属性,当input或者textarea设置了该属性后,该值的内容将作为灰色提示显示在文本 ...

  3. 【Javascript】IE8兼容 背景图片与a标签的onclick事件

    先说几句牢骚话. 虽然IE8比之IE6.7有很大的进步,但是在执行效率.兼容性上仍然有很多问题.被广大开发者喜爱的平台才是好平台. 可惜多亏当年盗版XP打开中国的计算机市场,IE作为一款捆绑软件仍然在 ...

  4. 解决ie8下面placeholder显示问题

    今天测试反馈一个bug,需要在ie8下面看到placeholder提示,开始的想法是对ie8进行降级处理,在ie8下面就不显示了. 现在测试反馈了,解决办法. function isLowIE() { ...

  5. 让IE8支持placeholder

    $(function(){ if(!placeholderSupport()){ // 判断浏览器是否支持 placeholder $('[placeholder]').focus(function( ...

  6. javascript 在ie8中报“缺少标识符、字符串或数字“问题再现:

    开发和测试使用Chrome浏览器比较多,客户反馈某个页面打不开,自己用Chrome打开一切正常,用ie8打开,果然页面展现卡在那儿了,并且报了"缺少标识符.字符串或数字".查看是在 ...

  7. 原创-兼容IE8的placeholder

    !function (o) { o.fn.extend({ PlaceHolder: function () { var _isEmpty = function (val) { return (val ...

  8. ie8中使用placeholder

    placeholder 是 html5 中的新属性,考虑到还有不少 ie8 的用户,所以找了一个 ie8 的 placeholder 的补丁,如下: <script type="tex ...

  9. 使ie8正常支持placeholder

    在IE8下测试,发现一个问题placeholder不被支持,下面是解决IE支持placeholder的方法,本文引用的jquery是1.12.0测试通过,先引用jquery <script ty ...

随机推荐

  1. JS构造函数详解

    //构造函数 //使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法 //当对象被实例化后,构造函数会立即执行它所包含的任何代码 function myObject(msg) ...

  2. 最长不下降子序列的O(n^2)算法和O(nlogn)算法

    一.简单的O(n^2)的算法 很容易想到用动态规划做.设lis[]用于保存第1~i元素元素中最长不下降序列的长度,则lis[i]=max(lis[j])+1,且num[i]>num[j],i&g ...

  3. PHP-关于$_SERVER

    类似于Nginx中的请求头,所有header,都可以使用 $http_xxx来使用,比如$http_accept,甚至包括自定义的,比如,$http_x_forwarded_host proxy_se ...

  4. python时间处理之datetime

    python时间处理之datetime 标签: pythondateimportstringc 2012-09-12 23:21 20910人阅读 评论(0) 收藏 举报  分类: Python系列( ...

  5. C++ map详解

    1.什么是mapmap是一个键值对容器.在处理一对一数据是,很有用. 2.map数据结构的特点map内部自建一颗红黑树,这棵树具有对数据自动排序的功能,因此,map内的数据都是按key的值排好序的. ...

  6. asp.net web api [FromBody]参数

    Using jQuery to POST [FromBody] parameters to Web API 时间2013-04-04 00:28:17 Encosia原文 http://encosia ...

  7. C#, float.ToString()的一个坑

    下面代码的输出竟然是2.0: float a=1.95f;Debug.Log(a.ToString("0.0")); 如果想截取一位小数,可以: float a=1.95f; fl ...

  8. linux下文件合并、分割、去重

    1.文件合并 1.1文件上下合并 cat f1 f2> muti  (将文件f1.f2合并成文件muti,f1在上,f2在下) 1.2左右合并 paste f1 f2 > muti  (将 ...

  9. weblogic11g重置控制台管理员用户名/密码

    weblogic安装后,很久不用,忘记访问控制台的用户名或者密码,可通过以下步骤来重置用户名密码. 说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录例如我的做 ...

  10. CentOS6.5 yum安装 apache+svn安装配置

    首页是关于svn的备份和还原 比较快捷的方式: 备份:svnadmin hotcopy /opt/svn/svntest/ /var/tmp/svntest_20120604 --clean-logs ...