给button加超链接 window.open与window.location.href区别

加超链接很简单,只需要在标签里添加点击事件:onclick="window.open('/admin/goods_edit.html')"或者onclick="window.location.href='/admin/goods_edit.html'"再抑或在外部加个a标签即可。window.open只是打开页面window.location.href打开页面并刷新

表单校验JQuery与正则的使用

简单讲解下正则的使用:单个字符:[]如: a [a-zA-Z0-9_]特殊符号代表特殊含义的单个字符:\d:单个数字字符 [0-9]\w:单个单词字符[a-zA-Z0-9_]量词符号:?:表示出现0次或1次*:表示出现0次或多次+:出现1次或多次{m,n}:表示 m<= 数量 <= n* m如果缺省: {,n}:最多n次* n如果缺省:{m,} 最少m次开始结束符号^:开始$:结束创建var reg = new RegExp("正则表达式");var reg = /正则表达式/;方法. test(参数):验证指定的字符串是否符合正则定义的规范,简单示例:var a="12345";var reg=/^\w{6,12}$/;   //正则 表示字符数6-12var b=reg.test(a); //此处a值不符合返回falsealert(b);下面以注册表单校验为例:<!--导入jquery--><script src="js/jquery-3.3.1.js"></script><script>    /*思路:    * 为每个单元格建立校验    * 在输入框离开焦点跟提交时候启用校验*/    function checkUsername() { //校验用户名        /*获取用户名值        * 定义正则        * 判断是否为true*/        var username = $("#username").val();        var reg_username = /^\w{3,10}$/; //用户名为3-10位字符串        var flag = reg_username.test(username);        if (flag) {            console.log("用户名合法") //浏览器控制台显示日志内容 实际不用写            $("#username").css("border", "");        } else {            console.log("用户名不合法")            $("#username").css("border", "1px solid red");        }        return flag;    }    function checkPassword() {        var password = $("#password").val();        var reg_password = /^\w{6,16}$/; //密码为6-10位字符串        var flag = reg_password.test(password);        if (flag) {            console.log("密码合法")            $("#password").css("border", "");        } else {            console.log("密码不合法")            $("#password").css("border", "1px solid red");        }        return flag;    }    function checkEmail() {        var email = $("#email").val();        var reg_email = /^\w+\@\w+\.\w+$/; //符合特定格式的字符串 带@跟.        var flag = reg_email.test(email);        if (flag) {            console.log("邮箱合法")            $("#email").css("border", "");        } else {            console.log("邮箱不合法")            $("#email").css("border", "1px solid red");        }        return flag;    }    function checkName() {        var name = $("#name").val();        var reg_name = /^\w{3,10}$/;        var flag = reg_name.test(name);        if (flag) {            console.log("姓名合法")            $("#name").css("border", "");        } else {            console.log("姓名不合法")            $("#name").css("border", "1px solid red");        }        return flag;    }    function checkTelephone() {        var telephone = $("#telephone").val();        var reg_telephone = /^\1\d{10}$/; //首位为1后面十位为数字        var flag = reg_telephone.test(telephone);        if (flag) {            console.log("手机合法")            $("#telephone").css("border", "");        } else {            console.log("手机不合法")            $("#telephone").css("border", "1px solid red");        }        return flag;    }    function checkCheck() {        var check = $("#check").val();        var reg_check = /^\w{4}$/; //已知验证码为四位字符        var flag = reg_check.test(check);        if (flag) {            console.log("验证码合法")            $("#check").css("border", "");        } else {            console.log("验证码不合法")            $("#check").css("border", "1px solid red");        }        return flag;    }    $(function () {        /*当表单提交时调用校验方法*/        $("#registerForm").submit(function () {            if (checkName() && checkPassword() && checkName() && checkEmail() && checkTelephone() && checkCheck()) {                $.post("user/regist", $(this).serialize(), function (data) { //serialize()序列化表单内容                    if (data.flag) { //从服务器获取注册结果                        console.log("注册成功")                        location.href = "regist_ok.html"; //注册成功跳转页面                    } else {                        console.log("注册失败")                        $("#errorMsg").html(data.errorMsg); //注册失败显示错误信息                    }                })            }        });        $("#username").blur(checkUsername); //鼠标离开输入框执行事件        $("#password").blur(checkPassword); //注意方法名后不要加(),否则失焦事件将无异议        $("#email").blur(checkEmail);        $("#name").blur(checkName);        $("#telephone").blur(checkTelephone);        $("#check").blur(checkCheck);    })</script>

JQuery中的mouseleave跟mouseout事件区别

使用IDEA写JQ事件时候发现有两种事件都是鼠标离开时触发的,它们分别是mouseleave跟mouseout为此我也上网百度了下得到两点区别:不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。也就是说假如一个div1内部又有个div2,你在div1中绑定了mouseout,当你鼠标离开div2时候也会触发事件,而leave不会,因此大家在使用时候建议根据具体情况使用

JQuery中的mouseleave跟mouseout事件区别

最简单Js显示网站已运行xx多少天 倒计时天数

    经常看到一些网站下端都会写“本站已安全运行xx天之内”的字样,到底怎么也能实现呢?除了用PHP等其他语言,其实js也可以很容易实现,下面放代码:<a>网站已运行</a><a id="days">0</a><a>天</a><script>var s1 = '2018-02-13';//设置为你的建站时间s1 = new Date(s1.replace(/-/g, "/"));s2 = new Date();var days = s2.getTime() - s1.getTime();var number_of_days = parseInt(days / (1000 * 60 * 60 * 24));document.getElementById('days').innerHTML = number_of_days;</script>    区区几行即可实现,可以放在网站任意位置哦!

X-Frame-Options头未设置 防止页面被iframe内框架调用

描述: 目标服务器没有返回一个X-Frame-Options头。X-Frame-Options HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。危害: 攻击者可以使用一个透明的、不可见的iframe,覆盖在目标网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击iframe页面的一些功能性按钮上,导致被劫持。解决方案:修改web服务器配置,添加X-frame-options响应头。赋值有如下三种:(1)DENY:不能被嵌入到任何iframe或frame中。 (2)SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。 (3)ALLOW-FROM uri:只能被嵌入到指定域名的框架中。也可在代码中加入,在PHP中加入:header('X-Frame-Options: deny');防止某些重要网页被其他网站框架导入,可以给页面增加X-Frame-Options响应头,这样浏览器会依据X-Frame-Options的值来控制iframe框架的页面是否允许加载显示出来,IE下的效果如下(此内容无法再框架中显示。为了帮助保护在此网站中输入的信息安全,此内容的发行者不允许在框架中显示该信息),其他非IE核心浏览器会显示空白内容。动态页添加X-Frame-Options响应头示例代码asp?123<%response.AddHeader "X-Frame-Options","Deny"%>Asp.Net?1Response.AddHeader("X-Frame-Options", "Deny");PHP?1header('X-Frame-Options:Deny');如果确认你整个网站都不能被框架,可以直接设置web服务器,增加X-Frame-Options响应头。IIS如下图所示,增加http头X-Frame-Options响应头可用值有DENY:浏览器拒绝当前页面加载任何Frame页面SAMEORIGIN:frame页面的地址只能为同源域名下的页面ALLOW-FROM:origin为允许frame加载的页面地址浏览器对X-Frame-Options响应头的支持如下浏览器版本支持IE8.0+Firefox3.6.9+Opera10.50+Safari4.0+Chrome4.1.249.1024+

X-Frame-Options头未设置 防止页面被iframe内框架调用

支付宝 微信 QQ多合一收款码二维码制作及源码

    几年前在买东西消费还少不了现金,现在移动支付已经遍地开花,就连路边摊都会贴个微信或支付宝收款码了,但是某些商店居然用一个二维码实现多种支付软件付款,是不是觉得很神奇?其实我们也能简单实现下(以下来自网络收集整理):  1、你要先有一个域名和空间,无论免费收费皆可,PHP的即可  2、或许收款码网址:打开自己的支付宝,微信,QQ,找到收款码然后保存下来。    如何获取微信收款码?打开微信,点击右上角的【+】号,再点击收付款,然后点击“我要收款”,最后保存收款码或截图即可。    如何获取支付宝收款码?打开支付宝,在其首页点击一下【收钱】,直接点击保存图片即可。    如何获取QQ收款码?打开手机QQ,在其主界面点击右上角的【+】号,再点击付款,然后点击右上角的【...】选择【我要收款】,截图收款码保存到相册即可。  3、打开二维码识别工具 点击进入在线工具上传收款码图片之后得到各收款二维码网址备用源码部分:多合一收款码其实原理很简单,通过判断扫描方的软件UA跳转到不同网址而已。可以点击此处查看软件UA根据UA不同跳转到不同网址,但是有个小问题,腾讯QQ、微信跳转后并不会直接付款,所以只能通过间接方式,跳转到收款码图片页面,然后长按收款码执行付款操作。下面直接上PHP代码header('HTTP/1.1 301 Moved Permanently');if(strstr($_SERVER['HTTP_USER_AGENT'], 'QQ/')){header('Location: QQ收款码图片页');}else if(strstr($_SERVER['HTTP_USER_AGENT'], 'Alipay')){header('Location: 此处输入支付宝二维码所识别的链接'); }else if(strstr($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger/')){header('Location: 微信收款码图片页');}另外还附赠一份现成的HTML收款码源码,使用时请自行替换收款码网址,该源码来自网络点击链接进入下载源码 (密码:5voc)

支付宝 微信 QQ多合一收款码二维码制作及源码