精华内容
下载资源
问答
  • 主要介绍了php获得客户端浏览器名称及版本的方法,基于ECShop函数get_user_browser实现该功能,非常具有实用价值,需要的朋友可以参考下
  • PHP获得客户端浏览器名称及版本
  • 以下是我在Ubuntu8.10下得到请求头信息的内容(主要包括客户端浏览器和操作系统名称)。 host: 127.0.0.1:8080 user-agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.19) Gecko/2010040118 Ubuntu/8.10 ...
    以下是我在Ubuntu8.10下得到请求头信息的内容(主要包括客户端浏览器和操作系统名称)。
    
    host: 127.0.0.1:8080
    user-agent: Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.19) Gecko/2010040118 Ubuntu/8.10 (intrepid Firefox/3.0.19
    accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    accept-language: zh-cn,zh;q=0.5
    accept-encoding: gzip,deflate
    accept-charset: gb2312,utf-8;q=0.7,*;q=0.7
    keep-alive: 300
    connection: keep-alive
    cookie: JSESSIONID=B282AD92737D937ACF816BFFF1E15B09
    cache-control: max-age=0

    在jsp中能过以下代码获得:
    <%
    Enumeration enus = request.getHeaderNames();
    out.println("参数名 参数值");
    while(enus.hasMoreElements()) {
    Object para_name = enus.nextElement();
    String para_value = request.getHeader(para_name.toString());
    %>
    <%=para_name + ": " + para_value%> <br/>

    <%}
    %>
    展开全文
  • ajax案例,servlet服务器端返回xml给客户端浏览器客户端浏览器xmlHttpRequest.responseXML却等于null我们要做的效果就是从服务器端取出城市集合,城市实体对象有城市id,城市名称,城市描述,城市图片这几个属性!...

    ajax案例,servlet服务器端返回xml给客户端浏览器,客户端浏览器xmlHttpRequest.responseXML却等于null

    我们要做的效果就是从服务器端取出城市集合,城市实体对象有城市id,城市名称,城市描述,城市图片这几个属性!

    效果如图:点击ajax返回xml格式的数据,然后解析xml按钮,得到服务器数据!




    在开发xml和ajax结合使用的时候,遇到一个问题,浏览器客户端中xmlHttpRequest.responseXML总是等于null

    后来发现了问题所在?

    原来是servlet中的代码有问题!看下图


    就是response.setContentType("text/html;charset=utf-8");这行代码

    导致了前端jsp页面获取xmlHttpRequest.responseXML总是等于null

    所以我们可以在前端jsp页面中可以做些特殊处理

    使用var cityList = parser.parseFromString(xmlHttpRequest.responseText,"text/xml");将文本格式转换成xml格式,

    这样我们在客户端浏览器中就可以像操作xml一样操作cityList变量了,如下图:



    以上方式是一种方式!

    另外还有一种解决方式!

    那就是修改servlet中的代码,把response.setContentType("text/html;charset=utf-8");这行代码修改成

    response.setContentType("text/xml;charset=utf-8");修改完这行代码之后,我们在前端jsp页面就不需要做什么特殊的处理了,直接就xmlHttpRequest.responseXML就可以得到从服务器端返回的数据,得到的就是xml格式的数据,然后就可以在jsp页面中直接操作xml了!


    对了,顺便补充一下,xml和字符串之间的转换!我在网上查了下资料,顺便贴一下吧,类似于java中的工具类,单独写了一个js文件!

    xml.js文件如下:

    /**
     * xml工具
     * xml对象和String字符串之间的转换
     * 
     */
    
    //convert string to xml object (将字符串转换成xml对象)
    function string2XML(xmlString) {
        // for IE(IE浏览器)
        if (window.ActiveXObject) {
          var xmlObject = new ActiveXObject("Microsoft.XMLDOM");
          xmlObject.async = "false";
          xmlObject.loadXML(xmlString);
          return xmlObject;
        }
        // for other browsers(火狐,谷歌浏览器等等)
        else {
          var parser = new DOMParser();
          var xmlObject = parser.parseFromString(xmlString, "text/xml");
          return xmlObject;
        }
      }
    
    //convert xml object to string (将xml对象转换成字符串)
    function xml2String(xmlObject) {
        // for IE(IE浏览器)
        if (window.ActiveXObject) {       
          return xmlObject.xml;
        }
        // for other browsers(火狐,谷歌浏览器等等)
        else {        
          return (new XMLSerializer()).serializeToString(xmlObject);
        }
      }
    
    

    以下是servlet的代码和jsp页面的代码

    servlet名叫JsonCity

    servlet代码如下:

    package com.jiongmeng.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.jiongmeng.entity.City;
    
    import net.sf.json.JSONArray;
    
    /**
     * json版省市联动
     */
    @WebServlet(urlPatterns="/JsonCity", loadOnStartup=1)
    public class JsonCity extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	
    	public static Map<String, List<City>> provinces = new HashMap<String, List<City>>();
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html;charset=utf-8");
    		//设置返回文本的类型,设置输出信息的格式及字符集 
    //		response.setContentType("text/xml;charset=utf-8");
    		PrintWriter pw = response.getWriter();
    		String provinceId = request.getParameter("provinceId");
    		String returnDataType = request.getParameter("returnDataType");
    		//得到省下面的所有市,是一个市数组或市集合
    		List<City> cityList = provinces.get(provinceId);
    		try {
    			Thread.sleep(3000);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		if (returnDataType == null) {
    			//向浏览器客户端返回json数据格式
    		/*
    		 * 将市数组或市集合,生成符合json规范的字符串返回给客户端,客户端通过javascript中的eval()函
    		 * 数解析json,在客户端用javascript解析json就像java中操作对象一样方便,在客
    		 * 户端用javascript通过.点操作符操作json
    		 */
    //		JSONObject JSONCitysStr = JSONObject.fromObject(cityList);
    		JSONArray JSONCitysStr = JSONArray.fromObject(cityList);
    		System.out.println(JSONCitysStr.isEmpty() +  JSONCitysStr.toString());
    		pw.print(JSONCitysStr.toString());
    		pw.flush();
    		pw.close();
    		}
    		else {
    			System.out.println("******************xml字符串如下(返回给浏览器客户端)******************");
    			System.out.println("******************共有" + cityList.size() + "个元素******************");
    			pw.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    			pw.print("<citys>");
    			System.out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    			System.out.println("<citys>");
    			//向浏览器客户端返回xml数据格式
    			for (City city : cityList) {
    				pw.print("<city>");	
    				pw.print("<cityID>" + city.getCityId() + "</cityID>");	
    				pw.print("<cityName>" + city.getCityName() + "</cityName>");	
    				pw.print("<context>" + city.getContext() + "</context>");	
    				pw.print("<imgPath>" + city.getImgPath() + "</imgPath>");	
    				pw.print("</city>");
    				System.out.println("<city>");	
    				System.out.println("<cityID>" + city.getCityId() + "</cityID>");	
    				System.out.println("<cityName>" + city.getCityName() + "</cityName>");	
    				System.out.println("<context>" + city.getContext() + "</context>");	
    				System.out.println("<imgPath>" + city.getImgPath() + "</imgPath>");	
    				System.out.println("</city>");
    			}
    			pw.print("</citys>");
    			System.out.println("</citys>");
    			
    		}
    	}
    
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request, response);
    	}
    	
    	@Override
    	public void init() throws ServletException {
    		//模拟数据库中的数据(为了测试)
    		List<City> jiangxiCitys = new ArrayList<City>();
    		jiangxiCitys.add(new City("88", "赣州市", "黄金机场", "/img/jiangxi.jpg"));
    		List<City> ganzhouCitys = new ArrayList<City>();
    		ganzhouCitys.add(new City("8801", "于都县", "长征广场,长征大桥,长征第一渡", "/img/11.jpg"));
    		List<City> yuduCitys = new ArrayList<City>();
    		yuduCitys.add(new City("880101", "贡江镇", "古老的镇子", "/img/jiangxi.jpg"));
    		yuduCitys.add(new City("880102", "禾丰镇", "特产是珠子粉", "/img/jiangxi.jpg"));
    		yuduCitys.add(new City("880103", "祁禄山镇", "环境宜人", "/img/jiangxi.jpg"));
    		yuduCitys.add(new City("880104", "岭背镇", "风景优美", "/img/jiangxi.jpg"));
    		ganzhouCitys.add(new City("8802", "兴国县", "又名将军县,走出了100多位将军", "/img/10.jpg"));
    		ganzhouCitys.add(new City("8803", "信丰县", "赣南脐橙", "/img/13.jpg"));
    		ganzhouCitys.add(new City("8804", "上犹县", "玉龙湾", "/img/4.jpg"));
    		ganzhouCitys.add(new City("8805", "赣县", "赣县中学", "/img/18.jpg"));
    		ganzhouCitys.add(new City("8806", "大余县", "大余中学", "/img/15.jpg"));
    		ganzhouCitys.add(new City("8807", "会昌县", "会昌中学", "/img/19.jpg"));
    		jiangxiCitys.add(new City("66", "南昌市", "八一广场", "/img/jiangxi.jpg"));
    		jiangxiCitys.add(new City("57", "九江市", "胜利塔", "/img/jiangxi.jpg"));
    		jiangxiCitys.add(new City("92", "景德镇市", "景德镇瓷器名扬天下", "/img/jiangxi.jpg"));
    		jiangxiCitys.add(new City("26", "抚州市", "铜锣湾广场,凤凰世纪花城", "/img/jiangxi.jpg"));
    		jiangxiCitys.add(new City("32", "上饶市", "婺源文化与生态旅游区", "/img/jiangxi.jpg"));
    		jiangxiCitys.add(new City("33", "萍乡市", "秋收起义广场,武功山", "/img/jiangxi.jpg"));
    		List<City> guangdongCitys = new ArrayList<City>();
    		guangdongCitys.add(new City("106", "广州市", "广州塔小蛮腰", "/img/guangdong.jpg"));
    		List<City> guangzhouCitys = new ArrayList<City>();
    		guangzhouCitys.add(new City("10601", "越秀区", "面积33.80平方公里", "/img/guangdong.jpg"));
    		guangzhouCitys.add(new City("10602", "海珠区", "面积90.40平方公里", "/img/guangdong.jpg"));
    		guangzhouCitys.add(new City("10603", "荔湾区", "面积59.10平方公里", "/img/guangdong.jpg"));
    		guangzhouCitys.add(new City("10604", "天河区", "面积96.33平方公里", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("107", "深圳市", "南山区科技园", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("108", "中山市", "利和广场", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("109", "惠州市", "泗洲塔", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("110", "江门市", "汇悦城", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("111", "梅州市", "长乐学宫", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("112", "汕尾市", "凤山妈祖文化广场", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("113", "河源市", "桃花水母大剧院", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("114", "阳江市", "阳江国际金融中心", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("115", "清远市", "马踏飞燕", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("116", "茂名市", "希望之泉", "/img/guangdong.jpg"));
    		guangdongCitys.add(new City("117", "湛江市", "湛江海湾大桥", "/img/guangdong.jpg"));
    		List<City> zhejiangCitys = new ArrayList<City>();
    		zhejiangCitys.add(new City("192", "杭州市", "杭州西湖,杭州大剧院", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("193", "宁波市", "天一广场,天一阁", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("194", "温州市", "温州鹿城广场,温州大桥", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("195", "绍兴市", "八字桥,世茂天际中心", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("196", "嘉兴市", "嘉兴古运河,嘉兴范蠡湖", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("197", "衢州市", "金佰汇广场", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("198", "金华市", "梦幻谷,明清宫苑,秦王宫,横店,清明上河图", "/img/zhejiang.jpg"));
    		zhejiangCitys.add(new City("199", "台州市", "江南长城、长屿洞天、神仙居", "/img/zhejiang.jpg"));
    		List<City> nanchangCitys = new ArrayList<City>();
    		nanchangCitys.add(new City("200", "进贤县", "南昌市下面县", ""));
    		nanchangCitys.add(new City("201", "安义县", "南昌市下面县", ""));
    		provinces.put("1", jiangxiCitys);
    		provinces.put("2", guangdongCitys);
    		provinces.put("3", zhejiangCitys);
    		provinces.put("88", ganzhouCitys);
    		provinces.put("66", nanchangCitys);
    		provinces.put("8801", yuduCitys);
    		provinces.put("106", guangzhouCitys);
    	}
    	
    	public List<City> getCitys(String provinceId) {
    		//得到省下面的所有市,是一个市数组或市集合
    		List<City> cityList = provinces.get(provinceId);
    		try {
    			Thread.sleep(3000);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		return cityList;
    	}
    
    }
    

    jsp叫xmlAndAjax.jsp

    jsp代码如下

    <%@ page language="java" contentType="text/html; charset=utf-8"
    	pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>xml在ajax中的应用</title>
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/body.css">
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/mark.css">
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/console.css">
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/console.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/loading.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/weChatQRCode.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/My97DatePicker/WdatePicker.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/test.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/testVar.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/xml.js"></script>
    <style type="text/css">
    .myImg {
    border-radius: 8px; /* 圆角 */
    border: 5px solid #0000AA;
    }
    </style>
    </head>
    <body>
    	<center id="center">
    	eval()函数不太安全,比如:eval()函数解析文本框(input)中输入的非法的值(用户在文本框中输入了某些恶意的非法的javascript代码)
    	<a href="${pageContext.request.contextPath}/json.jsp?debug=okokok" target="_blank">
    		eval()函数解析文本框(input)中输入的非法的值(案例demo)
    		</a>
    		<h1>xml在ajax中的应用</h1>
    		<h2>(ajax从服务器端返回xml格式的数据,前端拿到xml格式的数据后进行解析)</h2>
    		
    		<input id="ajaxXmlButton" οnclick="getServerCityByProvinceId()" type="button" value="ajax返回xml格式的数据,然后解析xml"><br>
    		<hr id="myHr" style="border:2px solid black;">
    		<input type="button" value="打印外部js文件中的变量" οnclick="printOutJsFileVar()">
    		<hr style="border:2px solid black;">
    		
    		<form action="Test" method="get">
    		<h3>(测试使用post方式,地址栏后面不会显示参数,而使用get方式,地址栏后面会显示参数)</h3>
    		<h2>员工信息表,带一个隐藏域(form表单使用get方式提交)</h2>
    		用户名:<input type="text" name="userName" value="令狐冲"><br><br>
    		
    		<input type="hidden" name="testHidden" value="tom">
    		
    		薪水:<input type="text" name="money" value="29869.75"><br><br>
    		入职时间:<input class="Wdate" type="text" name="workDate" οnfοcus="WdatePicker({readOnly:true, lang:'zh-cn', dateFmt:'yyyy-MM-dd'})">
    		顺便测试下My97DatePicker日期控件<br><br>
    		<input type="submit" value="提交到名字叫Test的servlet中处理"><br><br>
    		</form>
    		
    		<a href="${pageContext.request.contextPath}/my97DatePicker.jsp?debug=abc666" target="_blank">
    		My97DatePicker日期控件案例demo
    		</a>    
    		<input type="button" value="查看浏览器是否禁用Cookie" οnclick="testCookie()">
    		<br><br>
    		<a href="https://blog.csdn.net/judyge/article/details/51934292" target="_blank">
    		html中隐藏域hidden的作用介绍及使用示例
    		</a>
    	</center>
    	<br><br><br><br><br>
    
    </body>
    <script type="text/javascript">
    
    	var parser = new DOMParser();
    	
    	//使用ajax,服务器端返回xml格式的数据
    	//回调函数
    	function ajaxAndXml() {
    		if (getConsole() || isInitConsole()) {
    			console.log("==========控制台已经初始化了" + getConsole() + "==========");
    // 			先清空一下控制台中的内容
    			myCleanConsole();
    		}
    		else{
    			console.log("==========控制台还没有初始化" + getConsole() + "==========");
    			document.getElementById("center").insertBefore(initConsole(), document.getElementById("myHr"));
    		}
    		
    		if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
    			// 			var cityList = "" + xmlHttpRequest.responseText + "";
    			// 			var cityList = "" + xmlHttpRequest.responseText + "";
    			debug("xmlHttpRequest.responseXML=" + xmlHttpRequest.responseXML);
    			console.log("xmlHttpRequest.responseText=" + xmlHttpRequest.responseText);
    // 			var cityList = xmlHttpRequest.responseXML;
    			var cityList = parser.parseFromString(xmlHttpRequest.responseText,"text/xml");
    			var rootNode = cityList.documentElement;
    			console.log("xml对象cityList=" + cityList);
    // 			var xmlStr = (new XMLSerializer()).serializeToString(cityList);
    			var xmlStr = xml2String(cityList);
    			console.log("xml字符串cityList=" + xmlStr);
    			var cityArray = rootNode.getElementsByTagName("city");
    			var hrTag = "<hr style='height:5px;border:5px solid black;'>";
    			debug("<center><h1>从服务器端取数据,共有" + cityArray.length + "个元素</h1></center>");
    			var result = hrTag;
    			for (var index = 0; index < cityArray.length; index++) {
    				var cityId = cityArray[index].firstChild.firstChild.nodeValue;
    				var cityName = cityArray[index].firstChild.nextSibling.firstChild.nodeValue;
    				var cityContext = cityArray[index].getElementsByTagName("context")[0].firstChild.nodeValue;
    				var cityImgPath = cityArray[index].getElementsByTagName("imgPath")[0].firstChild.nodeValue;
    				
    				result += "<span style='color:#CD0000;'>城市id:</span>" + cityId + "<br>";
    				result += "<span style='color:#CD0000;'>城市名称:</span>" + cityName + "<br>";
    				result += "<span style='color:#CD0000;'>城市描述:</span>" + cityContext + "<br>";
    // 		var imgPath = "<img title='" + cityContext + "' src='" + "/ajax" + cityImgPath + "' style='width: 98%; height: 700px;'>";
    		var imgPath = "<img class='myImg' title='" + cityContext + "' src='" + "/ajax" + cityImgPath + "' style='width: 50%; height: 400px;'>";
    		result += "<span style='color:#CD0000;'>城市图片:</span><br>" + imgPath + hrTag;
    			}
    			debug("<center>" + result + "</center>");
    			//给控制台div层设置height高度
    			getConsole().style = "height: auto;";
    			//隐藏加载图片
    			hideLoading();
    		}
    
    	}
    
    	window.onload = function() {
    		createFollowWeChatQRCodeElement();
    		var centerNode = document.getElementById("center");
    // 		var ajaxXmlButtonNode = document.getElementById("ajaxXmlButton");
    		var hrNode = document.getElementById("myHr");
    		
    			//还未初始化控制台div层
    		if (!isInitConsole()) {
    			console.log("**********还未初始化控制台div层" + getConsole() + "**********");
    // 		debug("<hr>");
    			console.log(centerNode + " / " + getConsole());
    // 		centerNode.insertBefore(initConsole(), ajaxXmlButtonNode);
    		centerNode.insertBefore(initConsole(), hrNode);
    		// 		document.body.insertBefore(initConsole(), document.body.firstChild);
    		}
    		else{
    			console.log("**********控制台div层已经初始化了" + getConsole() + "**********");
    			//控制台div层已经初始化了
    			centerNode.insertBefore(getConsole(), hrNode);
     		}
    // 		getServerCityByProvinceId();
    	}
    
    	//打印外部js文件中的变量
    	function printOutJsFileVar() {
    		var hrTag = "<hr style='height:5px;border:5px solid #CD0000;'>";
    		var spanStartTag = "<span style='color: #0000AA;font-size: 32px;'>";
    		var spanEndTag = "</span>";
    		debug(hrTag + spanStartTag + "hometown=" + hometown + "<br>onLineName=" + onLineName
    				+ "<br>age=" + age + "<br>hobby=" + hobby + spanEndTag + hrTag);
    	}
    
    	function testCookie() {
    		if (navigator.cookieEnabled) {
    			console.log("浏览器启用了Cookie");
    			debug("浏览器启用了Cookie");
    			console.log("Cookie信息=" + document.cookie);
    			debug("Cookie信息=" + document.cookie);
    		} else {
    			//浏览器禁用了Cookie,所以js读取不到Cookie信息
    			console.log("浏览器禁用了Cookie");
    			debug("浏览器禁用了Cookie");
    			console.log("Cookie信息=" + document.cookie);
    			debug("Cookie信息=" + document.cookie);
    		}
    	}
    
    	/*
    
    	 eval()函数不太安全,比如:eval()函数解析文本框(input)中输入的非法的值(用户在文本框中输入了某些恶意的非法的javascript代码)
    
    	 */
    
    	// 	var test = '[{ "count":alert("hello javaScript!"),"pageCount":7,"nowPage":23 }]';//单独的这行代码,什么都不会打印
    	// 	var test = '{ "count":alert("hello javaScript!"),"pageCount":7,"nowPage":23 }';//单独的这行代码,什么都不会打印
    	// 	eval(test);//报错SyntaxError: missing ; before statement
    	// 	eval("(" + test + ")");
    	// 	var test = [{ "count":alert("hello javaScript!"),"pageCount":7,"nowPage":23 }];//单独的这行代码,会打印出hello javaScript!
    	// 	var test = { "count":alert("hello javaScript!"),"pageCount":7,"nowPage":23 };//单独的这行代码,会打印出hello javaScript!
    	// 	eval("(" + test + ")");//报错SyntaxError: missing ] after element list
    	// 	var result2 = eval(test);
    	// 	alert(result2);
    	//  	alert(test.count);//undefined
    	//  	alert(test.nowPage);
    	// 	test();
    	function test() {
    		var jsonData = '{ "count":alert("hello javaScript!"),"pageCount":7,"nowPage":23 }';
    		var jsonObj = eval('(' + jsonData + ')'); // eval();方法
    		alert(jsonObj.count);
    		jsonObj.count;
    		alert(jsonObj.pageCount);
    		alert(jsonObj.nowPage);
    		var testJson = {
    			name : "令狐冲",
    			age : 17,
    			sayHi : function() {
    				alert("hello,我是" + this.name + ",我今年" + this.age + "岁了!");
    			}
    		};
    		testJson.sayHi();
    		alert(testJson.name);
    		alert(testJson.age);
    		alert(testJson.sayHi);
    	}
    
    	var xmlHttpRequest;
    	function createXmlHttpRequest() {
    		//判断不同浏览器,采用不同方式创建XMLHttpRequest对象
    		if (window.ActiveXObject) {
    			//IE浏览器
    			try {
    				xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    			} catch (e) {
    				xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    			}
    			return xmlHttpRequest;
    		} else if (window.XMLHttpRequest) {
    			//其他浏览器如Firefox、Chrome等等
    			return new XMLHttpRequest();
    		}
    	}
    
    	//根据省id获取服务器上的市
    	function getServerCityByProvinceId(provinceId) {
    		if (provinceId == '0') {
    			cleanCity();
    			return;
    		}
    		//1.创建XMLHttpRequest对象
    		xmlHttpRequest = createXmlHttpRequest();
    		//2.设置回调函数
    		xmlHttpRequest.onreadystatechange = ajaxAndXml;
    		//请求的目标地址
    		var url = "/ajax/JsonCity?returnDataType=xml&provinceId=" + 88;
    		//3.初始化XMLHttpRequest组件
    		//addTimestampParameter(url)函数不太好的就是,URL本身可能带有一些参数,那就要判断是加"?"还是加"&"了
    		//xmlHttpRequest.open("GET", addTimestampParameter(url), true);
    		xmlHttpRequest.open("GET", url, true);
    		//xmlHttpRequest.open("POST", url, true);
    		//推荐使用下面这种方式,简洁灵活,不影响URL参数
    		xmlHttpRequest.setRequestHeader('If-Modified-Since', '0');
    		//4.发送请求
    		xmlHttpRequest.send(null);
    		//显示加载图片
    		showLoading(document.getElementById("ajaxXmlButton"),
    				"${pageContext.request.contextPath}/img/loading1.gif");
    	}
    	//测试多个js文件中出现了同名的变量,比如test.js文件和testVar.js文件中都有名字叫testHometown的变量
    	console.log("testHometown=" + testHometown);
    </script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/js/test.js"></script>
    <script type="text/javascript">
    //测试多个js文件中出现了同名的变量,比如test.js文件和testVar.js文件中都有名字叫testHometown的变量
    	console.log("testHometown=" + testHometown);
    </script>
    
    </html>
    展开全文
  • php实现读取手机客户端浏览器的类,php客户端本文实例讲述了php实现读取手机客户端浏览器的类。分享给大家供大家参考。具体分析如下:这里介绍的手机信息函数类有取手机号码,浏览器报头信息,取得手机类型,取得...

    php实现读取手机客户端浏览器的类,php客户端

    本文实例讲述了php实现读取手机客户端浏览器的类。分享给大家供大家参考。具体分析如下:

    这里介绍的手机信息函数类有取手机号码,浏览器报头信息,取得手机类型,取得手机IP等功能。

    代码如下:

    /**

    * 类名: mobile

    * 描述: 手机信息类

    * 其他: 偶然 编写

    */

    class mobile{

    /**

    * 函数名称: getPhoneNumber

    * 函数功能: 取手机号

    * 输入参数: none

    * 函数返回值: 成功返回号码,失败返回false

    * 其它说明: 说明

    */

    function getPhoneNumber(){

    if (isset($_SERVER[ 'HTTP_X_NETWORK_INFO '])){

    $str1 = $_SERVER[ 'HTTP_X_NETWORK_INFO '];

    $getstr1 = preg_replace( '/(.*,)(11[d])(,.*)/i ', '2 ',$str1);

    Return $getstr1;

    }elseif (isset($_SERVER[ 'HTTP_X_UP_CALLING_LINE_ID '])){

    $getstr2 = $_SERVER[ 'HTTP_X_UP_CALLING_LINE_ID '];

    Return $getstr2;

    }elseif (isset($_SERVER[ 'HTTP_X_UP_SUBNO '])){

    $str3 = $_SERVER[ 'HTTP_X_UP_SUBNO '];

    $getstr3 = preg_replace( '/(.*)(11[d])(.*)/i ', '2 ',$str3);

    Return $getstr3;

    }elseif (isset($_SERVER[ 'DEVICEID '])){

    Return $_SERVER[ 'DEVICEID '];

    }else{

    Return false;

    }

    }

    /**

    * 函数名称: getHttpHeader

    * 函数功能: 取头信息

    * 输入参数: none

    * 函数返回值: 成功返回号码,失败返回false

    * 其它说明: 说明

    */

    function getHttpHeader(){

    $str = ' ';

    foreach ($_SERVER as $key=> $val){

    $gstr = str_replace( "& ", "& ",$val);

    $str.= "$key -> ".$gstr. "rn ";

    }

    Return $str;

    }

    /**

    * 函数名称: getUA

    * 函数功能: 取UA

    * 输入参数: none

    * 函数返回值: 成功返回号码,失败返回false

    * 其它说明: 说明

    */

    function getUA(){

    if (isset($_SERVER[ 'HTTP_USER_AGENT '])){

    Return $_SERVER[ 'HTTP_USER_AGENT '];

    }else{

    Return false;

    }

    }

    /**

    * 函数名称: getPhoneType

    * 函数功能: 取得手机类型

    * 输入参数: none

    * 函数返回值: 成功返回string,失败返回false

    * 其它说明: 说明

    */

    function getPhoneType(){

    $ua = $this-> getUA();

    if($ua!=false){

    $str = explode( ' ',$ua);

    Return $str[0];

    }else{

    Return false;

    }

    }

    /**

    * 函数名称: isOpera

    * 函数功能: 判断是否是opera

    * 输入参数: none

    * 函数返回值: 成功返回string,失败返回false

    * 其它说明: 说明

    */

    function isOpera(){

    $uainfo = $this-> getUA();

    if (preg_match( '/.*Opera.*/i ',$uainfo)){

    Return true;

    }else{

    Return false;

    }

    }

    /**

    * 函数名称: isM3gate

    * 函数功能: 判断是否是m3gate

    * 输入参数: none

    * 函数返回值: 成功返回string,失败返回false

    * 其它说明: 说明

    */

    function isM3gate(){

    $uainfo = $this-> getUA();

    if (preg_match( '/M3Gate/i ',$uainfo)){

    Return true;

    }else{

    Return false;

    }

    }

    /**

    * 函数名称: getHttpAccept

    * 函数功能: 取得HA

    * 输入参数: none

    * 函数返回值: 成功返回string,失败返回false

    * 其它说明: 说明

    */

    function getHttpAccept(){

    if (isset($_SERVER[ 'HTTP_ACCEPT '])){

    Return $_SERVER[ 'HTTP_ACCEPT '];

    }else{

    Return false;

    }

    }

    /**

    * 函数名称: getIP

    * 函数功能: 取得手机IP

    * 输入参数: none

    * 函数返回值: 成功返回string

    * 其它说明: 说明

    */

    function getIP(){

    $ip=getenv( 'REMOTE_ADDR ');

    $ip_ = getenv( 'HTTP_X_FORWARDED_FOR ');

    if (($ip_ != " ") && ($ip_ != "unknown ")){

    $ip=$ip_;

    }

    return $ip;

    }

    }

    ?>

    希望本文所述对大家的php程序设计有所帮助。

    http://www.bkjia.com/PHPjc/940490.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/940490.htmlTechArticlephp实现读取手机客户端浏览器的类,php客户端 本文实例讲述了php实现读取手机客户端浏览器的类。分享给大家供大家参考。具体分析如下:...

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

    展开全文
  • js获取客户端浏览器信息

    千次阅读 2011-03-17 11:26:00
    js获取客户端浏览器信息 Navigator 对象包含有关浏览器的信息。 Navigator 对象属性:  属性描述IEFOappCodeName返回浏览器的代码名。419appMinorVersion返回浏览器的次级版本。4NoNoappName返回...

    js获取客户端浏览器信息

    Navigator 对象包含有关浏览器的信息。

    Navigator 对象属性:

     

    属性描述IEFO
    appCodeName 返回浏览器的代码名。419
    appMinorVersion 返回浏览器的次级版本。4NoNo
    appName 返回浏览器的名称。419
    appVersion 返回浏览器的平台和版本信息。419
    browserLanguage 返回当前浏览器的语言。4No9
    cookieEnabled 返回指明浏览器中是否启用 cookie 的布尔值。419
    cpuClass 返回浏览器系统的 CPU 等级。4NoNo
    onLine 返回指明系统是否处于脱机模式的布尔值。4NoNo
    platform 返回运行浏览器的操作系统平台。419
    systemLanguage 返回 OS 使用的默认语言。4NoNo
    userAgent 返回由客户机发送服务器的 user-agent 头部的值。419
    userLanguage 返回 OS 的自然语言设置。4No9

     

    Navigator 对象方法:

     

    方法描述IEFO
    javaEnabled() 规定浏览器是否启用 Java。419
    taintEnabled() 规定浏览器是否启用数据污点 (data tainting)。419

     

    IE的测试结果:

    FireFox的测试结果:

     

     获取具体IE版本号:

         function  checkIEVersion() { 
            
    var  ua  =  navigator.userAgent; 
            
    var  s  =   " MSIE "
            
    var  i  =  ua.indexOf(s)          
            
    if  (i  >=   0 ) { 
               
    // 获取IE版本号 
                 var  ver  =  parseFloat(ua.substr(i  +  s.length)); 
               alert(
    " 你的浏览器是IE " + ver);
            } 
            
    else  {
                
    // 其他情况,不是IE 
                alert( " 你的浏览器不是IE " );
            } 
        }

    是否开启弹出窗口阻止程序:

            function  checkAllowPopup() { 
            
    var  objChild; 
            
    var  reWork  =   new  RegExp( ' object ' , ' gi ' ); 
            
    try  {
               objChild 
    =  window.open( '' , ' child ' , ' left=8000,top=8000,width=50,height=50,status=no,resizable=yes ' );
               objChild.close(); 
            } 
            
    catch (e) { } 
            
    if ( ! reWork.test(String(objChild)))
            {
                alert(
    " NO " );
                
    return   false
            } 
            
    else
            {
                alert(
    " YES " );
                
    return   true
            } 
        }
    展开全文
  • * 客户端浏览器的类型,版本(version) * 分辨率大小,当前窗口大小 * IP、端口、web工程名称 * ***/ var ClientInfo ={ /** * 拷贝某一个JSON属性到当前对象 *@param selfJSON 当前JSON对象 *@param ...
  • 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。 状态码都是3位数字 分类: 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码 2xx:成功。代表:...
  • php判断客户端浏览器的类型

    千次阅读 2014-03-14 17:56:12
    1、通过 $_SERVER['HTTP_USER_AGENT'] 来写一个php判断浏览器类型的办法。 function my_get_browser(){ if(empty($_SERVER['HTTP_USER_AGENT'])){ return '命令行,机器人来了!'; } if(false!==strpos($_...
  • ASP.NET获取客户端浏览器信息!

    千次阅读 2016-03-04 16:59:19
    用户能够使用Request的对象的Browser属性访问HttpBroweserCapabilities属性获得当前正在使用哪种类型的浏览器浏览网页,并可以获得浏览器是否支持某些特定功能。下面就通过一个示例进行介绍。 下面的示例主要通过...
  • 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的...
  • 第一次接触到web api,发现这个东西是REST风格的:---- 微软的web api是在vs2012上的...代码可读性强的,上手快的,如果要拿它和web服务相比,我会说,它的接口更标准,更清晰,没有混乱的方法名称,有的只有几种标准
  • 我正在构建一个laravel应用程序,我想跟踪客户端浏览器的详细信息,例如浏览器名称.我如何使用Laravel做到这一点?public function postUser(Request $request){$user = new User();$user->name = $request->...
  • 各大经典浏览器HTTP_USER_AGENT详细 IE 各个版本典型的userAgent如下: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2) Mozilla/4.0 (compatible;...
  • ①:DNS解析域名得到IP地址 ②:客户端与服务器建立连接(TCP三次握手) ③:客户端发起请求 ④:服务器接收到请求根据端口号.路径等找到对应资源文件,响应源代码给客户端 ⑤:客户端拿到请求到的数据(htm...
  • 代码Code highlighting produced by ... //获取浏览器类型  string browserVersion = hbc.Version.ToString(); //获取版本号  browserVersions = browserType+browserVersion;  return browserVersions;   }
  • ----取得浏览器的useragent字符串 判断浏览器 var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器 var isIE = userAgent.indexOf("compatible") > -1 && u...
  • JSP获取客户端浏览器和操作系统信息String Agent = request.getHeader("User-Agent");StringTokenizer st = new StringTokenizer(Agent,";");st.nextToken();//得到用户的浏览器名String userbrowser = st.next...
  • 检测客户端的操作系统和浏览器名称是比较常见的需求,整理保存一下备用~ 1、检测浏览器名称 function getBrowser() { var UserAgent = navigator.userAgent.toLowerCase(); var browser = null; var ...
  • 怎样显示客户端浏览器,操作系统,来访IP 一,获得网页来访者IP地址的代码是: 您的IP是: 二,获得操作系统版本的代码是: " & browser function operationsystem() 操作系统版本 agent = Request.ServerVariables...
  • 也是在网上查的资料,整理一下相互学习下第一步:生成SSL证书: 因为是测试,直接使用jdk自带的keytool工具生成自签名证书(注:自签名证书是不被浏览器认可的,只能用于测试), --打开cmd --输入命令(复制啊):...
  • var appName = navigator.appName; //浏览器的正式名称 var appVersion = navigator.appVersion; //浏览器的版本号 var cookieEnabled = navigator.cookieEnabled; // 返回用户浏览器是否启用了...
  • 今天在做一项测试的时候,需要获取客户端操作系统和浏览器版本,于是我就使用 HttpServletRequest httpRequest = (HttpServletRequest) request; String agent = httpRequest.getHeader("User-Agent"); 来获取...
  • 获取主机ip及MAC地址、浏览器名称

    千次阅读 2018-03-30 09:13:12
     //获取浏览器名称,可能不全  public static String getBrowserName(HttpServletRequest request) {    String agent = request.getHeader("User-Agent").toLowerCase();  if (agent.indexOf("msie 7") > 0) {...
  • 在前端开发的时候,有时候为了测试需要得到访问客户的ip地址。虽说是后端来做的,但是我们前端也可以完成。 先说下获取用户ip地址,包括像ipv4,ipv6,掩码等内容,但是大部分都要根据浏览器的支持情况来决定,目前...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 148,165
精华内容 59,266
关键字:

如何获得客户端浏览器名称