JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
[ 2015/06/24 09:50 | by 刘新修 ]
网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth
HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
IE,FireFox 差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth
-------------------
技术要点
本节代码主要使用了Document对象关于窗口的一些属性,这些属性的主要功能和用法如下。
要得到窗口的尺寸,对于不同的浏览器,需要使用不同的属性和方法:若要检测窗口的真实尺寸,在Netscape下需要使用Window的属性;在IE下需要 深入Document内部对body进行检测;在DOM环境下,若要得到窗口的尺寸,需要注意根元素的尺寸,而不是元素。
Window对象的innerWidth属性包含当前窗口的内部宽度。Window对象的innerHeight属性包含当前窗口的内部高度。
Document对象的body属性对应HTML文档的标签。Document对象的documentElement属性则表示HTML文档的根节点。
document.body.clientHeight表示HTML文档所在窗口的当前高度。document.body. clientWidth表示HTML文档所在窗口的当前宽度。
XML/HTML代码
- 实现代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>请调整浏览器窗口</title>
- <meta http-equiv="content-type" content="text/html; charset=gb2312">
- </head>
- <body>
- <h2 align="center">请调整浏览器窗口大小</h2><hr>
- <form action="#" method="get" name="form1" id="form1">
- <!--显示浏览器窗口的实际尺寸-->
- 浏览器窗口 的 实际高度: <input type="text" name="availHeight" size="4"><br>
- 浏览器窗口 的 实际宽度: <input type="text" name="availWidth" size="4"><br>
- </form>
- <script type="text/javascript">
- <!--
- var winWidth = 0;
- var winHeight = 0;
- function findDimensions() //函数:获取尺寸
- {
- //获取窗口宽度
- if (window.innerWidth)
- winWidth = window.innerWidth;
- else if ((document.body) && (document.body.clientWidth))
- winWidth = document.body.clientWidth;
- //获取窗口高度
- if (window.innerHeight)
- winHeight = window.innerHeight;
- else if ((document.body) && (document.body.clientHeight))
- winHeight = document.body.clientHeight;
- //通过深入Document内部对body进行检测,获取窗口大小
- if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
- {
- winHeight = document.documentElement.clientHeight;
- winWidth = document.documentElement.clientWidth;
- }
- //结果输出至两个文本框
- document.form1.availHeight.value= winHeight;
- document.form1.availWidth.value= winWidth;
- }
- findDimensions();
- //调用函数,获取数值
- window.onresize=findDimensions;
- //-->
- </script>
- </body>
- </html>
源程序解读
(1)程序首先建立一个表单,包含两个文本框,用于显示窗口当前的宽度和高度,并且,其数值会随窗口大小的改变而变化。
(2)在随后的JavaScript代码中,首先定义了两个变量winWidth和winHeight,用于保存窗口的高度值和宽度值。
(3)然后,在函数findDimensions ( )中,使用window.innerHeight和window.innerWidth得到窗口的高度和宽度,并将二者保存在前述两个变量中。
(4)再通过深入Document内部对body进行检测,获取窗口大小,并存储在前述两个变量中。
(5)在函数的最后,通过按名称访问表单元素,结果输出至两个文本框。
(6)在JavaScript代码的最后,通过调用findDimensions ( )函数,完成整个操作。
原生JS实现AJAX、JSONP及DOM加载完成事件
[ 2015/06/19 16:04 | by 刘新修 ]
JavaScript代码
- ajax({
- url:"http://192.168.66.90:8080/php/test5.php",
- type:"POST",
- data:{GUID:"288350897",subFlag:"1"},
- dataType:"jsonp",
- callback:"Jsoncallback",
- success:function(data){
- if(data.sex==0){
- var userSex="帅哥";
- }
- if(data.sex==1){
- var userSex="美女";
- }
- if(data.switch==0){
- $(".Mbox .mailInfo .text_").html('<span style="color:#fbff83">'+data.mailInfo+'</span>封'+userSex+'来信');
- $(".Mbox").addClass("ty");
- mbox.addEventListener("webkitAnimationEnd",function(){ //动画结束时事件
- var timer=setInterval(function(){
- if(mbox.offsetTop==-60){
- mbox.className='Mbox tyy';
- clearInterval(timer)
- }
- },1000)
- },false);
- }
- //alert(data.switch)
- },
- fail:function(status){
- // 此处放失败后执行的代码
- }
- });
- /***********************************
- 公共ajax方法支持跨越请求
- ************************************/
- function ajax(options) {
- options = options||{};
- if (!options.url||!options.callback){
- throw new Error("参数不合法");
- }
- //创建 script 标签并加入到页面中
- var callbackName=('jsonp_'+Math.random()).replace(".","");
- var oHead=document.getElementsByTagName('head')[0];
- options.data[options.callback]=callbackName;
- var params=formatParams(options.data);
- var oS=document.createElement('script');
- oHead.appendChild(oS);
- //创建jsonp回调函数
- window[callbackName]=function(json){
- oHead.removeChild(oS);
- clearTimeout(oS.timer);
- window[callbackName]=null;
- options.success&&options.success(json);
- };
- //发送请求
- oS.src=options.url+'?'+params;
- //超时处理
- if(options.time){
- oS.timer=setTimeout(function(){
- window[callbackName]=null;
- oHead.removeChild(oS);
- options.fail&&options.fail({message:"超时"});
- },time);
- }
- };
- //格式化参数
- function formatParams(data){
- var arr=[];
- for(var name in data){
- arr.push(encodeURIComponent(name)+"="+encodeURIComponent(data[name]));
- }
- return arr.join('&');
- }
jQuery制作从左到右从新排列内容动画特效
[ 2015/06/17 14:27 | by 刘新修 ]
XML/HTML代码
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>jQuery制作从左到右从新排列内容动画特效</title>
- <style>
- body{ height: 3000px; padding: 0; margin: 0; }
- div{ background: #000; margin: 20px 0; width: 100px; height: 30px; color: #fff; line-height: 30px; text-align: center; }
- </style>
- </head>
- <script src="js/jquery.min.js"></script>
- <body>
- <div class="op1">111</div>
- <div class="op2">222</div>
- <div class="op3">333</div>
- <div class="op4">444</div>
- <div class="op5">555</div>
- <div class="op6">666</div>
- <div class="op7">777</div>
- <input type="button" value="stop!!!" />
- <script>
- var _width = ($(document).width() - $('div').width()) + "px";
- var animateList=[
- function(){ $('.op1').delay(500).animate({marginLeft:_width},500,queueList); },
- function(){ $('.op2').delay(300).animate({marginLeft:_width},500,queueList); },
- function(){ $('.op3').delay(300).animate({marginLeft:_width},500,queueList); },
- function(){ $('.op4').delay(700).animate({marginLeft:_width},500,queueList); },
- function(){ $('.op5').delay(300).animate({marginLeft:_width},500,queueList); },
- function(){ $('.op6').delay(200).animate({marginLeft:_width},500,queueList); },
- function(){ $('.op7').delay(300).animate({marginLeft:_width},500,function(){ alert('动画队列结束'); } );}
- ];
- $(document).queue('_queueList',animateList);
- var queueList=function(){
- $(document).dequeue('_queueList');
- };
- queueList();
- $(':button').click(function(){
- $(document).clearQueue('_queueList');
- });
- </script>
- </body>
- </html>
Linux复制本地文件到远程
[ 2015/06/17 10:06 | by 刘新修 ]
scp -r /www/next.youyuan.com2 root@192.168.3.162:/www/
JSON 常用类型处理
[ 2015/06/16 11:54 | by 刘新修 ]
JavaScript代码
- var str='{"weatherinfo": [{"city": "北京","city_en": "beijing", "cityid": "101130101","date": "","date_y": "2014年1月23日", "wind6": "微风"}]}';
- var obj=JSON.parse(str);
- var yy=JSON.stringify(obj);
- alert(yy)
JS设置数组随机取值,支持多个不重复【实例】
[ 2015/06/12 18:10 | by 刘新修 ]
JS设置数组随机取值,支持多个不重复【实例】
XML/HTML代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <body Arrdata="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33">
- </body>
- <script type="text/javascript" src="http://code.liuxinxiu.com/lib/zepto/zepto-1.1.6.js"></script>
- <script language="javascript">
- //从一个给定的数组arr中,随机返回num个不重复项
- function getArrayItems(arr, num) {
- //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;
- var temp_array = new Array();
- for (var index in arr) {
- temp_array.push(arr[index]);
- }
- //取出的数值项,保存在此数组
- var return_array = new Array();
- for (var i = 0; i<num; i++) {
- //判断如果数组还有可以取出的元素,以防下标越界
- if (temp_array.length>0) {
- //在数组中产生一个随机索引
- var arrIndex = Math.floor(Math.random()*temp_array.length);
- //将此随机索引的对应的数组元素值复制出来
- return_array[i] = temp_array[arrIndex];
- //然后删掉此索引的数组元素,这时候temp_array变为新的数组
- temp_array.splice(arrIndex, 1);
- } else {
- //数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.
- break;
- }
- }
- return return_array;
- }
- //测试
- var ArrData=$("body").attr("Arrdata");
- //var ArrList=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33];
- var data=ArrData.split(",");//已经是数组,直接可以用str[0]去取了
- //alert(str[1])
- //alert(getArrayItems(arr,2));
- var html=getArrayItems(data,2);
- for(var i=0;i<html.length;i++){
- alert(html[i])
- }
- document.write(html)
- </script>
- </html>
JS遍历2层DOM装入数组转JSON【实例】
[ 2015/06/12 15:42 | by 刘新修 ]
JS遍历2层DOM装入数组转JSON【实例】
XML/HTML代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- <style>
- *{ margin:0; padding:0;}
- body{ color:#333; font-family:'Microsoft Yahei'; font-size:16px;}
- ul,li{ list-style:none; line-height:30px;}
- .conbox{ padding:10px;}
- .conbox .selected{ color:#CC0033}
- .conbox .lis span{ padding:0 5px;}
- </style>
- </head>
- <body arrData="111,222,333,444,555,666">
- <div class="conbox">
- <ul class="lisbox">
- <li data-qId="11" n="aaa" class="lis selected"><span class="on">111c</span><span class="on">222c</span><span class="on">333c</span></li>
- <li data-qId="22" n="bbb" class="lis">bbb</li>
- <li data-qId="33" n="ccc" class="lis selected"><span class="on">111a</span><span class="on">222a</span><span class="on">333a</span></li>
- <li data-qId="44" n="ddd" class="lis">ddd</li>
- <li data-qId="55" n="eee" class="lis selected"><span class="on">111b</span><span class="on">222b</span><span class="on">333b</span></li>
- <li data-qId="66" n="fff" class="lis">fff</li>
- </ul>
- </div>
- <div id="submitBtn" style=" width:100%; height:50px; line-height:50px; text-align:center; color:#fff; background:#CC0000">点击事件</div>
- </body>
- <script type="text/javascript" src="http://code.liuxinxiu.com/lib/zepto/zepto-1.1.6.js"></script>
- <script type="text/javascript">
- $("#submitBtn").on("click",function(){
- /********* 声明变量获取节点 ***************/
- var qList=$(".lisbox li.selected"),qLen=qList.length,arr=[];
- /********* 循环第一层问题 ***********/
- for(var i=0;i<qLen;i++){
- /**** var $anList=$qList.eq(i).find("[name=an" + i + "]:checked"),subArr=[]; ****/
- var anList=qList.eq(i).find(".on"),subArr=[];
- var qid=qList.eq(i).attr("data-qId");
- /***** 循环第二层答案 **********/
- for(var key=0;key<anList.length;key++){
- subArr.push(anList.eq(key).text());
- }
- /***** 添加到整体数组 ************/
- arr.push({Question:qid,Answer:subArr});
- }
- /***** 转化成JSON结构字符串 *******/
- var subArrst=JSON.stringify(subArr);
- var jsondata=JSON.stringify(arr);
- /***** 使用replace替换"号为空、可全部 ******/
- var _subArrst=subArrst.replace(/"/g,"");
- var _datalist=jsondata.replace(/"/g,"");
- var _dataJson={guId:111222,eventId:11,plat:5,datalist:subArrst};
- alert(_datalist)
- });
- </script>
- </html>
JSTL 与 JSP 或者 Java 相互传递变量的代码
[ 2015/06/08 11:20 | by 刘新修 ]
两种方式
<c:set var="s1" value="This is One" scope="request" />
out.print(request.getAttribute("s1") ;
<c:set var="s2" value="This is Two"/>
out.print(pageContext.getAttribute("s2"));
----------------------------------------------------
JSTL 变量由 JSP 读取
<c:set var="JspValue1" value="Java Language One" scope="request" />
<c:set var="JspValue2" value="Java Language Two"/>
<%
String JspValue3 = request.getAttribute("JspValue1").toString();
String JspValue4 = pageContext.getAttribute("JspValue2").toString();
out.print(JspValue3);
out.print(JspValue4);
%>
----------------------------------------------------
JSP 变量由 JSTL 读取
String strContextPath = request.getContextPath();
pageContext.setAttribute("ContextPath", strContextPath);
..
<c:out value="${ContextPath}"></out>
Nginx Post最大提交数据限制
[ 2015/05/13 20:39 | by 刘新修 ]
原以为是php本身的限制,查看配置文件无论是POST还是单个文件上传都满足要求:
#post最大提交量
post_max_size = 8M
#php给个文件最大限制
upload_max_filesize = 2M
************************************************************************
NGINX错误日志显示:
Nginx 【client intended to send too large body: 1065755 bytes】
在Nginx.conf文件中添加:
client_max_body_size 64M; #多少M根据实际情况填写
重启即可!
PHP判断POST或GET请求,返回提交服务器的JSON数据(支持跨越)
[ 2015/04/17 10:32 | by 刘新修 ]
注明:暂时不支持跨域名下GET请求
http://192.168.66.90:8080//php/POST_GET.php
PHP代码
- <?php
- //目前暂不支持跨域GET请求
- header('Content-type: text/json');
- html_entity_decode($string, ENT_QUOTES, 'UTF-8');
- //回调参数设置
- $param="callback";
- $callback=$_REQUEST[$param];
- //判断请求参数就是同域名下AJAX请求
- if(!isset($callback)){
- //返回多个Id
- if($_POST){
- exit(json_encode($_POST));
- }else if($_GET){
- exit(json_encode($_GET));
- }
- //返回单个Id
- if($_POST['Id']){
- $a=$_POST['Id'];
- //echo $a;
- exit(json_encode($a));
- }else if($_GET['Id']){
- $a=$_GET['Id'];
- //echo $a;
- exit(json_encode($a));
- }
- //强制开关按钮
- if($_POST['CT']){
- $a=$_POST['CT'];
- echo $a;
- }else if($_GET['CT']){
- $a=$_GET['CT'];
- echo $a;
- }
- }
- //判断请求参数存在就是实现JSONP跨越提交
- if(isset($callback)){
- //强制开关按钮
- if($_POST['Id']){
- $a=$_POST['Id'];
- $b=json_encode($a);
- $str=$callback."(".$b.")";
- }else{
- $a=$_POST['CT'];
- $str=$callback."(".$a.")";
- }
- echo $str;
- }
- ?>
http://192.168.66.90:8080/Ajax/s6.html
XML/HTML代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>ajax test</title>
- <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
- <script type="text/javascript">
- $(document).ready(function(){
- //点击请求http接口,删除多条数据
- $(".delall").click(function(){
- //拼写成JSON数据格式,提交http接口JSON不需要转字符串
- //alert(JSON.stringify(obj))
- var val=$(".dellink.on").map(function(){
- return $(this).attr("id");
- }).get();
- var obj={Id:val};
- //var vot=JSON.stringify(obj);
- //alert(obj)
- /***** 同域名下多条ID请求
- $.ajax({
- url:"/php/POST_GET.php",
- type:"post",
- dataType:"json",
- //jsonp:"callback",
- data:obj,
- success:function(data){
- //var yy=JSON.stringify(data);
- //alert(yy)
- $.each(data.Id,function(i,item){
- $('#'+item).slideUp();
- });
- },
- error:function(){
- alert("异常!");
- }
- });
- */
- /***** 跨域名多条ID请求 *****/
- $.ajax({
- url:"http://192.168.66.90:8080//php/POST_GET.php",
- type:"post",
- dataType:"jsonp",
- jsonp:"callback",
- data:obj,
- success:function(data){
- //var yy=JSON.stringify(data);
- //alert(data)
- $.each(data,function(i,item){
- $('#'+item).slideUp();
- });
- },
- error:function(){
- alert("异常!");
- }
- });
- });
- //点击请求http接口,删除单条数据
- $(".dellink").click(function() {
- var thisId=$(this).attr("id");
- /***** 同域名Ajax请求
- $.ajax({
- url:"/php/POST_GET.php",
- type:"post",
- dataType:"json",
- //jsonp:"callback",
- data:{Id:thisId},
- success:function(data){
- //var yy=JSON.stringify(data);
- //alert(yy)
- $.each(data,function(i,item){
- $('#'+item).slideUp();
- });
- },
- error:function(){
- alert("异常!");
- }
- });
- *****/
- /****** 可支持jsonp跨域名请求 */
- $.ajax({
- url:"http://192.168.66.90:8080//php/POST_GET.php",
- type:"post",
- dataType:"jsonp",
- jsonp:"callback",
- data:{Id:thisId},//{Id:"44554547"}
- success:function(data){
- var yy=JSON.stringify(data);
- //alert(data)
- if(thisId==data){
- $('#'+data).slideUp();
- }
- },
- error:function(){
- alert("异常!");
- }
- });
- });
- //控制开关(服务器返回0或1)
- $(".control").click(function(){
- var hason=$(this).hasClass("on");
- /***** 同域名下访问http接口
- if(hason){
- $.ajax({
- url:"/php/POST_GET.php",
- type:"post",
- dataType:"json",
- data:{CT:"0"},
- success:function(data){
- $(".control").removeClass("on");
- $(".control").html("广告关闭")
- },
- error:function(){
- alert("异常!");
- }
- });
- }else{
- $.ajax({
- url:"/php/POST_GET.php",
- type:"post",
- dataType:"json",
- data:{CT:"1"},
- success:function(data){
- $(".control").addClass("on");
- $(".control").html("广告开启")
- },
- error:function(){
- alert("异常!");
- }
- });
- }
- */
- /***** 跨域名访问http接口 *****/
- if(hason){
- $.ajax({
- url:"http://192.168.66.90:8080//php/POST_GET.php",
- type:"post",
- dataType:"jsonp",
- jsonp:"callback",
- data:{CT:"0"},
- success:function(data){
- if(data==0){
- $(".control").removeClass("on");
- $(".control").html("广告关闭")
- }
- },
- error:function(){
- alert("异常!");
- }
- });
- }else{
- $.ajax({
- url:"http://192.168.66.90:8080//php/POST_GET.php",
- type:"post",
- dataType:"jsonp",
- jsonp:"callback",
- data:{CT:"1"},
- success:function(data){
- if(data==1){
- $(".control").addClass("on");
- $(".control").html("广告开启")
- }
- },
- error:function(){
- alert("异常!");
- }
- });
- }
- });
- //control end
- });
- </script>
- </head>
- <body>
- <style type="text/css">
- body { font-family: 'Microsoft Yahei'; margin:0; padding:0; font-weight:normal}
- .dellink,.delall,.list .control{height:60px; line-height:60px; color:#fff; width:600px; font-size:22px; text-align:center; margin:2px auto; cursor:pointer;}
- .dellink{ display:block; background:#000;}
- .delall{ background: #CC3366; }
- .list .control{ background:#CC0033; }
- .list .on{background:#006633;}
- </style>
- <a class="dellink on" id="1001">删除单条数据 0111</a>
- <a class="dellink" id="1002">删除单条数据 022</a>
- <a class="dellink on" id="1003">删除单条数据 0333</a>
- <a class="dellink on" id="1004">删除单条数据 044</a>
- <a class="dellink" id="1005">删除单条数据 0555</a>
- <div class="delall">请求http接口【并删除多条数据】</div>
- <div class="list">
- <div class="control on">广告开启</div>
- </div>
- </body>
- </html>