javascript下兼容firefox选取textarea文本的代码
[ 2013-09-10 22:03:12 | 作者: admin ]
function getSelectedText(){
var selectedText;
var textField=document.getElementById('inputTextarea');
if(window.getSelection) selectedText=getTextFieldSelection(textField);//getTextFieldSelection(document.getElementById("inputTextArea"));
else selectedText=document.selection.createRange().text;
alert(selectedText);
}
function getTextFieldSelection(e){
阅读全文…
Javascript获取光标位置以及设置光标位置
[ 2013-09-10 21:20:50 | 作者: admin ]
获取光标位置函数
设置光标位置函数
阅读全文…
function getCursortPosition (ctrl) {
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
设置光标位置函数
function setCaretPosition(ctrl, pos){
...阅读全文…
Nginx 限速和限制请求配置,使用limit模块仿cc
[ 2013-09-10 09:55:56 | 作者: admin ]
p.s.压力测试是很好的检验方法,用webbech或者ab等一些工具模拟并发服务器,若服务器没有限制连接数或带宽,服务器很容易被压跨。
http {
…
limit_conn_zone $binary_remote_addr zone=one:10m;
limit_req_zone $binary_remote_addr zone=perip:5m rate=20r/s;
#如果在1.1.8之后版本还用语法:limit_zone name $variable size,会报警告nginx: [warn] the “limit_zone” directive is deprecated, use the “limit_conn_zone” directive
#这里,设置客户端的IP地址作为键。注意,这里使用的是$binary_remote_a...
阅读全文…
http {
…
limit_conn_zone $binary_remote_addr zone=one:10m;
limit_req_zone $binary_remote_addr zone=perip:5m rate=20r/s;
#如果在1.1.8之后版本还用语法:limit_zone name $variable size,会报警告nginx: [warn] the “limit_zone” directive is deprecated, use the “limit_conn_zone” directive
#这里,设置客户端的IP地址作为键。注意,这里使用的是$binary_remote_a...
阅读全文…
proftpd基本配置+虚拟用户
[ 2013-09-09 17:17:25 | 作者: admin ]
感觉比vsftpd要方便一点,配置起来比较灵活。
先简单的配置一下。
安装什么的比较简单,如下。
安装好以后,从源码包里复制启动脚本。
# cp proftpd-1.3.4a/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
# chmod 755 /etc/init.d/proftpd
然后,需要在proftpd里面修改一下参数。由于我安装的时候不是默认的目录,所以很多涉及到程序路径的地方要改成安装的位置。具体如下。
# chkconfig: 345 85 15
...
阅读全文…
先简单的配置一下。
安装什么的比较简单,如下。
# tar -zxvf proftpd-1.3.4a
# cd proftpd-1.3.4a
# ./configure –prefix=/usr/local/proftpd
# make
# make install
# cd proftpd-1.3.4a
# ./configure –prefix=/usr/local/proftpd
# make
# make install
安装好以后,从源码包里复制启动脚本。
# cp proftpd-1.3.4a/contrib/dist/rpm/proftpd.init.d /etc/init.d/proftpd
# chmod 755 /etc/init.d/proftpd
然后,需要在proftpd里面修改一下参数。由于我安装的时候不是默认的目录,所以很多涉及到程序路径的地方要改成安装的位置。具体如下。
# chkconfig: 345 85 15
...
阅读全文…
expect spawn、linux expect 用法小记
[ 2013-09-09 17:13:35 | 作者: admin ]
使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。
脚本代码如下:
1. [#!/usr/bin/expect]
这一行告诉操作系统...
阅读全文…
脚本代码如下:
##############################################
#!/usr/bin/expect
set timeout 30
spawn ssh -l username 192.168.1.1
expect "password:"
send "ispass\r"
interact
##############################################
#!/usr/bin/expect
set timeout 30
spawn ssh -l username 192.168.1.1
expect "password:"
send "ispass\r"
interact
##############################################
1. [#!/usr/bin/expect]
这一行告诉操作系统...
阅读全文…
Linux简单处理CC攻击shell脚本
[ 2013-09-09 17:07:10 | 作者: admin ]
第一个脚本是通过查找日志中访问次数过多的ip,并用iptables屏蔽,600秒解封。
阅读全文…
#!/bin/bash
btime=600
becur=`date -d "1 minute ago" +%H%M%S`
badip=`tac /home/www.centos.bz/log/access.log | awk -v a="$becur" -F [' ':] '{t=$5$6$7;if (t>=a){ print} else {exit;}' | egrep -v "\.(gif|jpg|jpeg|png|css|js)" | awk '{print $1}' | sort | uniq -c | awk '{if ($1>=20) print $2}}'`
if [ ! -z "$badip" ];then
...btime=600
becur=`date -d "1 minute ago" +%H%M%S`
badip=`tac /home/www.centos.bz/log/access.log | awk -v a="$becur" -F [' ':] '{t=$5$6$7;if (t>=a){ print} else {exit;}' | egrep -v "\.(gif|jpg|jpeg|png|css|js)" | awk '{print $1}' | sort | uniq -c | awk '{if ($1>=20) print $2}}'`
if [ ! -z "$badip" ];then
阅读全文…
“不 能通过已删除的行访问该行的信息。”错误原因
[ 2013-09-09 10:56:14 | 作者: admin ]
用 DataTable.Rows[i].Delete(); 删除后,然后循环读取datatable,结果还能遍历到原来的行,错误提示“不能通过已删除的行访问该行的信息。”
查阅资料才知道 Delete() 删除后 仅标记行状态为Deleted,并没有真正删除。确认改变需要再次调用RejectChanges()方法。
如果要彻底删除datarow,需要Delete()和AccepteChanges()方法同时使用,或者采用 datatable.Rows.RemoveAt(i)方法直接删除,其中i表示行索引,还有一个就是 datatable.Rows.Remove(DataRow dr)删除指定行。使用datatable.Rows.RemoveAt(i)要注意,如果连续使用 datatable.Rows.RemoveAt(0);datatable.Rows.RemoveAt(1);这时并不...
阅读全文…
查阅资料才知道 Delete() 删除后 仅标记行状态为Deleted,并没有真正删除。确认改变需要再次调用RejectChanges()方法。
如果要彻底删除datarow,需要Delete()和AccepteChanges()方法同时使用,或者采用 datatable.Rows.RemoveAt(i)方法直接删除,其中i表示行索引,还有一个就是 datatable.Rows.Remove(DataRow dr)删除指定行。使用datatable.Rows.RemoveAt(i)要注意,如果连续使用 datatable.Rows.RemoveAt(0);datatable.Rows.RemoveAt(1);这时并不...
阅读全文…
mysql中如何取得left join的第二表中符合条件的第一条记录
[ 2013-09-06 14:59:59 | 作者: admin ]
有表一 tableA
tid username title
1 lily 我公司将进行xx培训
2 angus 关于秋游的通知
3 boss 这个月不发奖金
4 vivi 新产品上市
表二 tableB
tid time txt
1 0809 大家快来。。。。
2 0810 我是新来的,大家好
2 0810 我知道你是新来的。。。
4 0811 价格太贵啦。。。
我想取得相同tid下的tableA的title跟对应的tableB中符合条件的第一条txt记录结合起来使用
注意:上面的tableB中有两条tid为2的记录,那么按我的要求只有前一条被提取。请高手帮忙
mysql里的正确答案如下,但是在sql server里面不支持
...
阅读全文…
tid username title
1 lily 我公司将进行xx培训
2 angus 关于秋游的通知
3 boss 这个月不发奖金
4 vivi 新产品上市
表二 tableB
tid time txt
1 0809 大家快来。。。。
2 0810 我是新来的,大家好
2 0810 我知道你是新来的。。。
4 0811 价格太贵啦。。。
我想取得相同tid下的tableA的title跟对应的tableB中符合条件的第一条txt记录结合起来使用
注意:上面的tableB中有两条tid为2的记录,那么按我的要求只有前一条被提取。请高手帮忙
mysql里的正确答案如下,但是在sql server里面不支持
...
阅读全文…