【www.bbyears.com--js教程】
bootstrap datetimepicker插件在IE8下显示无效,报错提示bootstrap-datetimepicker.js脚本不支持indexOf()方法
解决方案:在bootstrap-datetimepicker.js/bootstrap-datetimepicker.min.js最前面添加以下代码:
if (!Array.prototype.indexOf)
{
Array.prototype.indexOf = function(elt /*, from*/)
{
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++)
{
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}
下面补充一下关于
下面讲解下如何让Bootstrap 3兼容IE8浏览器,至于有人会问我如何兼容IE6 IE7,请绕道搜索bsie (bootstrap2)。
Bootstrap在IE8中肯定不如Chrome、Firefox、IE11那么完美,部分组件不保证完全兼容,还是要Hack的。这里不谈。
1、使用html5文档声明
使用zencoding的用户 输入 html:5 再按Tab键即可。
XHTML
2、加入meta标签
前者定义媒体查询,后者确定显示此网页的IE版本。
XHTML
3、引入bootstrap文件
这步十分重要,这里要看你是引用其他网站(CDN)的bootstrap文件还是把Bootstrap文件放本地。
这里我放在本地,因为之后的部署比较简单。
XHTML
4、引入respond.js 和 html5.js
respond.js(Github)是用于媒体查询的,项目说明描述:要和需要进行媒体查询的文件放在同一域中。不然CDN部署的需要更改一些选项,之后再说。
html5shiv : html5.js(Google Code)(Github)是让不(完全)支持html5的浏览器“支持”html5标签。
XHTML
4.1 CSS文件在CDN上(或子域名)的Respond.js部署
详情请见:https://github.com/scottjehl/Respond#cdnx-domain-setup
Github上说,这个js是通过ajax复制一份你的css文件。所以需要一个代理页面去请求文件。
需要上传一些文件,步骤比较复杂,而且一般公共CDN基本没人有这种操作权限。
之后再添加代码。
XHTML
<script src="/path/to/respond.proxy.js"></script>
5、添加1.X版本的Jquery库
Jquery 2.0以上就不再支持IE 6/7/8 这三大虐心神器了。所以要想使用Bootstrap3中的一些插件效果,比如modal 弹出层对话框这类控件。我们就需要添加 2.0以下的,这里我用1.10.2的Jquery库。
XHTML
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script> 6、总结
本人非前端工程师,只是爱好者一枚,如有错误还请批评指教。大家相互学习~
本人也正是做了个Bootstrap3的小项目(姓名代码查询),正是这个项目让我总结以上经验出来。
主要还是在于让respond.js起效果,关键就是让bootstrap的文件和respond.js同域,不同域需要用CDN上的html做ajax。
懒人代码总结如下:
//可删
//根据需要引用
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.js"></script>//根据需要引用
<script src="bootstrap/js/bootstrap.min.js"></script>
//根据需要引用
Internet Explorer 9 和8的兼容模式是被支持的,纯Internet Explorer 8 不被支持,然而,很多 CSS3 属性和 HTML5 元素 -- 例如,圆角矩形和投影 -- 是肯定不被支持的