谷歌与IE浏览器兼容问题

  1. 获取单选框选中的值
    这种写法在chrome中无法获取所选标签的value属性的值
var search=$("input[type='radio'][name='search'][checked='checked']").val();

改成如下方式,在IE和chrome中可获取所选标签的value属性的值

var search=$("input[type='radio'][name='search']:checked").val();
  1. 谷歌不支持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');
  1. 使用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();
 }
  1. 如果想让iframe 的src属性指向一个空页面,可以写成:src=“”,而不能写成src=”#”
  2. 判断当前使用的是否是谷歌浏览器,true为谷歌,false为IE。
window.navigator.userAgent.indexOf("Chrome") != -1
  1. 如果改为window.open()方法后仍然不生效
    1、看下这个方法是不是在$(function{})中被调用的,在这里调用是不生效的,因为浏览器认为这不是用户主动想要跳转的,可以把windo.open()放在点击事件里调用
    2、如果是谷歌生效而IE不生效,可以在代码中设置打开窗口时使用指定的IE版本:
<meta http-equiv="X-UA-Compatible" content="IE=11" />
  1. 子页面获取父页面的变量
    父页面:
window.username = “tom”;
window.user={“name”:”jack”,”age”:18};

子页面:

var username= window.opener.username;
var name = window.opener.user.name;
  1. 关闭通过iframe的方式打开的页面
    如果子页面是个iframe,可以通过window.parent.opener.close()来关闭当前页面,同理,如果iframe中嵌套了iframe,可以window.parent.parent.opener.close()。
  2. ajax请求无法进入scuess方法,总是进入error方法,检查ajax请求的datatype ,把json改为text,对应的后台代码增加返回数据类型设置,如下
response.setContentType("text/html");
response.getOutputStream().println("1");
  1. 刷新当前页面
window.location.herf = window.location.herf
  1. 样式写法区别
    Chrome写法:
	var allTrList = document.form1.getElementsByTagName("tr");
	allTrList[x].style.setProperty("display","none");
  1. chrome中,使用window的方式打开新窗口,如果代码没有报错,但是窗口没有打开,可能是被浏览器拦截了,可以在浏览器的地址栏查看是否被拦截,点击”允许”即可