IE和Chrome下INPUT之type为submit时disabled导致Form无法提交技术
记录一个浏览器之间的差异,火狐和 IE,Google Chrome 之间的不同,其他的浏览器就不知道啦,一般开发人员能兼顾的也就只有这三个浏览器啦。
在火狐下开发,当 input 的 type 为 submit 时触发表单提交,如果想在前端体验更好一点点,不要让用户重复点击按钮,有一种做法是将 submit 按钮的的 disabled 设置为 true。这样在火狐下是没有问题的,但是在 IE 和 Chrome 下会导致 Form 表单被阻止提交,原因大家都能想的到,onSubmit 事件触发后执行的动作导致按钮为不可用状态,自然就失效了,无法提交。
解决的方法很简单,去除设置 disabled 为 true 的那行代码。用其他的方式依然可以很好的解决这个问题。比如 setTimeout,比如使用 this.flag 等。定时器解决问题当然是没有问题的,但是实现起来比较麻烦,于是最简单的方法如下示例:
ArchLinux下命令行连接PPTP VPN实战技术
使用 Gnome 主题的网络连接配置添加 PPTP VPN 连接,一直不能连接上服务器,查看日志找问题也找不出问题。也许是 UI 配置太过于复杂,很多配置项弄的人晕头转向,也许是配置错误的问题吧,于是尝试使用命令行来配置连接。下面是在 ArchLinux 上的操作记录。
➜ ~ sudo pacman -S pptpclient // 推荐使用 pptpsetup 来配置 ➜ ~ sudo pptpsetup --create may --server vpn.domain.com --username may --password 123456 --encrypt ➜ ~ sudo pon may debug dump logfd 2 nodetach ➜ ~ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 64:00:6a:57:7a:34 brd ff:ff:ff:ff:ff:ff inet 192.168.162.21/24 brd 192.168.162.255 scope global dynamic eno1 valid_lft 688022sec preferred_lft 688022sec inet 192.168.162.101/24 brd 192.168.162.255 scope global secondary eno1 valid_lft forever preferred_lft forever inet6 fe80::6600:6aff:fe57:7a34/64 scope link valid_lft forever preferred_lft forever ➜ ~ ping www.google.com PING www.google.com (216.58.221.132) 56(84) bytes of data. ^C --- www.google.com ping statistics --- 7 packets transmitted, 0 received, 100% packet loss, time 6007ms ➜ ~ sudo pon lml ➜ ~ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 64:00:6a:57:7a:34 brd ff:ff:ff:ff:ff:ff inet 192.168.162.21/24 brd 192.168.162.255 scope global dynamic eno1 valid_lft 687988sec preferred_lft 687988sec inet 192.168.162.101/24 brd 192.168.162.255 scope global secondary eno1 valid_lft forever preferred_lft forever inet6 fe80::6600:6aff:fe57:7a34/64 scope link valid_lft forever preferred_lft forever 41: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1496 qdisc fq_codel state UNKNOWN group default qlen 3 link/ppp inet 10.10.0.5 peer 10.10.0.1/32 scope global ppp0 valid_lft forever preferred_lft forever ➜ ~ ping www.google.com PING www.google.com (216.58.221.132) 56(84) bytes of data. ^C --- www.google.com ping statistics --- 6 packets transmitted, 0 received, 100% packet loss, time 5007ms ➜ ~ sudo ip route add default dev ppp0 ➜ ~ ping www.google.com PING www.google.com (216.58.221.132) 56(84) bytes of data. 64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=1 ttl=52 time=752 ms 64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=2 ttl=52 time=449 ms 64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=3 ttl=52 time=453 ms 64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=4 ttl=52 time=988 ms 64 bytes from hkg07s02-in-f132.1e100.net (216.58.221.132): icmp_seq=6 ttl=52 time=465 ms ^C --- www.google.com ping statistics --- 7 packets transmitted, 5 received, 28% packet loss, time 6006ms rtt min/avg/max/mdev = 449.059/621.896/988.647/216.446 ms
Jquery绑定Ajax请求全局错误处理不生效的问题技术
JQuery 拥有强大的 Ajax 功能,如果网站的系统设计足够好,必须有个地方处理全局请求错误处理的,如果每个请求发生错误都单独处理,那是非常可怕的, 设计全局错误处理是非常重要的。
看 JQ 的官方文档,提供了 ajaxError 的错误处理方法,该方法在 Jquery 比较新的后续版本中只支持绑定在 document 上了。看官方文档给人的感觉是,你只能使用 ajax 才能有效,什么 get,post, getJson, getScript 等都不一定会生效,如果想不被全局错误处理干扰,可以设置 global:false。
在使用 ajax 方法请求后,如果全局错误处理方法没有被触发,问题可能在哪里呢?下面列举几种可能,实在没撤,只能下载源码来调试啦。
WinXP VPN连上后能上谷歌不能上Youtube等怎么办技术
在 Windows Xp 系统下,连接上国外 VPN 后,可能会出现能上 Google 但是 YouTube,FaceBook 什么的就不能上了,是不是很奇怪,也有都不能上的情况。
下面转载一些网上的教程,需要修改注册表。
Windows XP 系统连接 PPTP VPN 或 L2TP IPSec VPN 后,会发现 VPN 接口配置的 DNS 的优先级不够而无法对内部主机进行解析(Windows 7 系统不存在此问题)。如果你系统设置的默认 DNS 服务器是国内 DNS 服务器,就会导致虽然已经连上了 VPN 但是无法打开 youtube、twitter,facebook, Flcikr 等网站的现象,这是因为系统默认的 DNS 还是原来的本地连接的国内 DNS,依旧被劫持中。
ArchLinux安装定时任务工具Crontab技术
Linux 定时任务 crontab,如果使用 Ubuntu 等其他发行版,可以很方便的直接使用,根本没有安装这回事。但是 ArchLinux 并没有自带这个功能,需要安装才能使用,官方推荐使用 Cronie。
如果不看官方文档,随便搜索试试也能找到 cronie。但是找到安装之后并不能生效。当你使用 crontab -e 安装了一些任务之后,发现过了好几天都没有动静是不是很生气。
回头再看看 Arch 的 wiki,虽然他们的网站做起来还有点样子,但是文档写的太冗长,看着觉得累。下面就以最简单的几个命令总结如何安装及启动吧。如下所示:
// install sudo pacman -S cronie // 开机启动 systemctl enable cronie.service // 启动 systemctl start cronie.service