为啥 IE8 中不显示 Jquery 日期选择器图标?

Posted

技术标签:

【中文标题】为啥 IE8 中不显示 Jquery 日期选择器图标?【英文标题】:Why isn't Jquery date picker icon showing in IE8?为什么 IE8 中不显示 Jquery 日期选择器图标? 【发布时间】:2012-01-19 06:55:20 【问题描述】:

我的 html 页面中有以下代码。 图标存在且图片路径有效。 除了 IE8 仅显示一个 rey 框外,每个浏览器似乎都能正确显示。 有人知道解决办法吗?

<script type="text/javascript" charset="utf-8">

 var sDate = new Date(1323637200000);

  $(function() 
    $( "#datepicker" ).datepicker(

      minDate: -151,
      maxDate: "-1D",
      dateFormat: "dd-mm-yy",
      defaultDate: sDate,
      firstDay: 6,
      showOn: "button",
      buttonImage: "/public/images/ico-calendar.gif",
      buttonImageOnly: false,
      onSelect: function(mydate) 
            window.location.href="/reports/"+mydate;
        
    );
  );
</script>
<input type="hidden" id="datepicker" />

【问题讨论】:

尝试使用 ~/public/images/ico-calendar.gif 这不会改变任何东西。图片uri是正确的,其他浏览器可以显示图标。 【参考方案1】:

经过大量的摆弄,我发现重新设置图标图像的最大宽度可以让图标正确显示。这听起来像是 IE 8 的一个怪癖。

img
 max-width: none;

【讨论】:

【参考方案2】:

把html改成

<input type="text" id="datepicker" />

小提琴here。我没有给出有效的图像路径。你需要在你的开发系统上检查它。

【讨论】:

【参考方案3】:

不确定这对人们来说是否仍然是一个问题,但我用一个小的 jQuery 脚本解决了它:

        var ua = window.navigator.userAgent;
        var msie = ua.indexOf('MSIE');
        var trident = ua.indexOf('Trident/');
        //Check if IE
        if (msie > 0 || trident > 0) 
            $("input[type=date]").datepicker();
        

在 Chrome 和所有 IE 版本上都像魅力一样工作。

【讨论】:

以上是关于为啥 IE8 中不显示 Jquery 日期选择器图标?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery *= 选择器在 IE8 中不起作用

.net 为啥绝对路径的img在ie8中不显示啊?

为啥伪元素上的过滤器渐变在 IE8 中不起作用?

占位符在 IE8 和 IE9 中不起作用,即使使用 jQuery 插件

ie8中不支持Object.create

为啥 Bootstrap 3 导航栏下拉菜单在 IE8 中不起作用?