谷歌与IE浏览器兼容问题
- 获取单选框选中的值
这种写法在chrome中无法获取所选标签的value属性的值
var search=$("input[type='radio'][name='search'][checked='checked']").val();
改成如下方式,在IE和chrome中可获取所选标签的value属性的值
var search=$("input[type='radio'][name='search']:checked").val();
- 谷歌不支持window.showModalialog的方式打开新窗口,窗口的大小等参数写法也不一样。
var openWindow=window.open('${ctxPath}/purchase.do?cmd=queryProvince',
'','height=550,width=500,center=yes,top=200,resizable=yes,status=no,scrollbars=no');
- 使用window.open打开新窗口,且在子页面关闭时获取子页面返回的数据
父页面:
function queryProvince(){
var openWindow=window.open('${ctxPath}/purchase.do?cmd=queryProvince',
'','height=550,width=500,center=yes,top=200,resizable=yes,status=no,scroll=no');
var tool = setInterval(
function(){
if(openWindow.closed){
//在子页面对该标签的value进行赋值
var provinceCode = $("#provinceCode").val();
clearInterval(tool);
}
},200);
}
在父页面的body中定义:
<input id=”provinceCode” type=”hidden” />
子页面:
function click_save_btn(){
var returnStr=$('input:checked').val();
// 给父页面id为”provinceCode”的元素的value赋值
window.opener.document.getElementById("provinceCode ").value=returnStr;
window.close();
}
- 如果想让iframe 的src属性指向一个空页面,可以写成:src=“”,而不能写成src=”#”
- 判断当前使用的是否是谷歌浏览器,true为谷歌,false为IE。
window.navigator.userAgent.indexOf("Chrome") != -1
- 如果改为window.open()方法后仍然不生效
1、看下这个方法是不是在$(function{})中被调用的,在这里调用是不生效的,因为浏览器认为这不是用户主动想要跳转的,可以把windo.open()放在点击事件里调用
2、如果是谷歌生效而IE不生效,可以在代码中设置打开窗口时使用指定的IE版本:
<meta http-equiv="X-UA-Compatible" content="IE=11" />
- 子页面获取父页面的变量
父页面:
window.username = “tom”;
window.user={“name”:”jack”,”age”:18};
子页面:
var username= window.opener.username;
var name = window.opener.user.name;
- 关闭通过iframe的方式打开的页面
如果子页面是个iframe,可以通过window.parent.opener.close()来关闭当前页面,同理,如果iframe中嵌套了iframe,可以window.parent.parent.opener.close()。 - ajax请求无法进入scuess方法,总是进入error方法,检查ajax请求的datatype ,把json改为text,对应的后台代码增加返回数据类型设置,如下
response.setContentType("text/html");
response.getOutputStream().println("1");
- 刷新当前页面
window.location.herf = window.location.herf
- 样式写法区别
Chrome写法:
var allTrList = document.form1.getElementsByTagName("tr");
allTrList[x].style.setProperty("display","none");
- chrome中,使用window的方式打开新窗口,如果代码没有报错,但是窗口没有打开,可能是被浏览器拦截了,可以在浏览器的地址栏查看是否被拦截,点击”允许”即可