IE条件注释
IE10以下版本可用,IE11已经取消支持
<!--[if lte IE 8]>
<script src="/js/html5.js"></script>
<script src="/js/css3-mediaqueries.js"></script>
<link href="/css/ie8.css" rel="stylesheet" type="text/css">
<![endif]-->
因为IE11不支持条件注释,可以使用正则判断
var browser = navigator.appName;
var ie11 = !!navigator.userAgent.match(/Trident\/7\./);
if (browser == 'Microsoft Internet Explorer' || ie11 == true) {
//do something
}
IE9部分页面不显示的问题
IE9是不支持 console.log 打印输出语句的,在非开发者模式下会阻塞不会执行后面的内容
IE9 及以下 IE浏览器不支持placeholder属性
引入 jquery和用于解决这个属性兼容的CDN
<script type="text/javascript" src="http://www.ijquery.cn/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="http://www.ijquery.cn/js/jquery.placeholder.min.js"></script>
<%--兼容IE9及以下input输入框,textarea文本框不支持提示文本placeholder属性的问题--%>
<script type="text/javascript">
$(function(){ $('input, textarea').placeholder(); });
</script>
上面这种方法在HTML文件中亲测有效,但是不知道为什么在前后端不分离JSP项目中不会生效,以某国企老项目为例,需要在每个页面的JS代码中加上
<!-- css代码 -->
.phcolor{
color:#999;
}
<!-- js代码 -->
// placeholder兼容IE9
$(function(){
//判断浏览器是否支持placeholder属性
supportPlaceholder='placeholder'in document.createElement('input'),
placeholder=function(input){
var text = input.attr('placeholder'),
defaultValue = input.defaultValue;
if(!defaultValue){
input.val(text).addClass("phcolor");
}
input.focus(function(){
if(input.val() == text){
$(this).val("");
}
});
input.blur(function(){
if(input.val() == ""){
$(this).val(text).addClass("phcolor");
}
});
//输入的字符不为灰色
input.keydown(function(){
$(this).removeClass("phcolor");
});
};
//当浏览器不支持placeholder属性时,调用placeholder函数
if(!supportPlaceholder){
$('input').each(function(){
text = $(this).attr("placeholder");
if($(this).attr("type") == "text"){
placeholder($(this));
}
});
}
});
换行word-wrap与word-break兼容ie和火狐、chrome
- word-wrap控制换行,使用break-word时,会强制进行换行,中文没问题,英文语句没问题,长串的英文不会生效。
- word-break控制是否断词
normal是默认情况,英文单词不被拆开
break-all,是断开单词。在单词到边界时,下个字母自动到下一行。主要解决了长串英文的问题。
keep-all,是指Chinese, Japanese, and Korean不断词。即只用此时,不用word-wrap,中文就不会换行了。(英文语句正常。)
所以,要做到英文和中文等强制换行,需要组合使用如下
<p style="word-wrap: break-word; word-break: break-all"></p>
JS判断移动端浏览器还是PC浏览器
window.parent.location.href = /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? "${context}/erpGuaranteeFlowController/findErpGuaranteeApprovalNew.do" : "${context}/erpItosController/toDoList";
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
<!-- 移动端设备 -->
h5flag = false
} else {
<!-- pc端设备 -->
h5flag = true
}
请到客户端“主题--自定义配置--valine”中填入ID和KEY