吴伟贤のBlog

Feed Rss

存档: ‘js’ 分类

js之文本框输入四个数字自动加空格的脚本

12.27.2010, js之文本框输入四个数字自动加空格的脚本已关闭评论, js, by .

[cce_html] <scrip … 了解更多

js虚拟网址随机变换

10.19.2010, js虚拟网址随机变换已关闭评论, js, by .

/*
使用方法
<script language="javascript" src="http://www.abc.com/js.js"></script>凡人修仙传TXT全集下载</a>
*/

//Generate random number between A and B ==== [A,B]
function f_genRandNumber(startNum, endNum){
    try {
        var randomNumber;
        randomNumber = Math.round(Math.random() * (endNum – startNum)) + startNum;
        return randomNumber;
    }
    catch (W) {
        return startNum;
    }
}

function f_getRandBigCharacter(){
    try {
        //[A,Z] 65,90
        return String.fromCharCode(f_genRandNumber(65, 90));
        //[a,z] 97 122
    }
    catch (W) {
        return ‘A’;
    }
}

function f_getRandSmallCharacter(){
    try {
        //[a,z] 97 122
        return String.fromCharCode(f_genRandNumber(97, 122));
    }
    catch (W) {
        return ‘a’;
    }
}

//返回 a=b&c=x
function f_getRandString(){
    try {
       var szRtn1 = f_getRandSmallCharacter() +"=" +f_getRandBigCharacter() + f_getRandBigCharacter() +f_getRandBigCharacter() ;
       var szRtn2 = f_getRandSmallCharacter() +"=" +f_getRandBigCharacter() + f_getRandBigCharacter() +f_getRandBigCharacter() ;
       var szRtn3 = f_getRandSmallCharacter() +"=" +f_getRandSmallCharacter() + f_getRandSmallCharacter() +f_getRandSmallCharacter() ;
       var szRtn = szRtn1+"&" + szRtn2 +"&" +szRtn3 ;
       return szRtn ;
    }
    catch (W) {
        return "" ;
    }
}
//下载实际地址
var szCoreUrl = "http://www.abc.com/soft/download.php?id=17" ;
//变换后的地 址http://www.abc.com/soft/download.php?id=17&r=QLE&n=QMP&k=ssu
var szCode = "<a href=’"+szCoreUrl+"&"+f_getRandString()+"’ target=’_blank’>" ;

document.writeln(szCode);

了解更多

按下回车 跳到下一个input输入框

10.06.2010, 按下回车 跳到下一个input输入框已关闭评论, js, by .

今天遇到一个细节问题

按下回车 跳到下一个input输入框

方法一:<input type="text" name="b_sn" onkeydown="if(event.keyCode==13)event.keyCode=9 " value ="">

方法二:

<input id="Text1" type="text" onkeydown="if(event.keyCode==13) document.getElementById(‘Text2’).focus()" />

文档全部应用:方法如下

<SCRIPT LANGUAGE="JavaScript">

<!–

document.onkeydown = function(){

if(event.keyCode == 13){ event.keyCode =9; }

}

//—>

</SCRIPT>

了解更多

js取得IE地址栏指定参数的值

09.08.2010, js取得IE地址栏指定参数的值已关闭评论, js, by .

<script language="JavaScript">
function getQueryString(key){
    var searchString = document.location.search.toString();
    var returnValue = ”;
    if (searchString.substr(0,1)==’?’ && searchString.length>1)
    {
        var queryString = searchString.substring(1,searchString.length)
        var queryList = queryString.split(‘&’);
        for (var i=0; i<queryList.length; i++)
        {
            var oneQuery = queryList[i].split(‘=’);
            if (oneQuery[0]==key && oneQuery.length==2)
            {
                returnValue = oneQuery[1];
            }
        }
    }
    return returnValue;
}
</script>

<script>

document.write(getQueryString(‘id’));

alert(getQueryString(‘id’));
</script>

<a href="?id=90">aaaaaaaa </a>

了解更多

子窗口传值给父窗口时,window.opener.document为空或不是对象的错

07.29.2010, 子窗口传值给父窗口时,window.opener.document为空或不是对象的错已关闭评论, js, by .

解决办法:

使用window.open(url, "选择查询内容","height=600, width=250, top=100, left=200,z-look=yes,toolbar=no, menubar=no, scrollbars=yes, resizable=no ,alwaysRaised=yes, location=no, status=no" );

报错的原因是:开始使用的

window.showModalDialog(url,"选择查询内容",’dialogWidth=250px;dialogHeight=600px;center:1;scroll:1;help:0; status:0′);

这个好像不能做为父子窗口来传递数据。

我的子窗口中是一棵动态树,我要双击末节点,把节点的值传递给父窗口的<input>里JS函数:

function getValue(name,Nvalue){  //用于双击获取字段的值
window.opener.document.getElementByIdx(name).value =Nvalue;
window.close();
}

name是父窗口中input的id值,Nvalue是双击的节点的名称。

了解更多

打开新窗口中父子窗口传值研究open(),showModalDialog(),iframe

07.29.2010, 打开新窗口中父子窗口传值研究open(),showModalDialog(),iframe已关闭评论, js, by .

打开一个新窗口,该子窗口调用父对象的方法或变量,这个问题一直没有搞清楚。网上找了些资料,总结一下:

打开新窗口一般有几种方法,window.open(…),window.showModalDialog(…),以及iframe中嵌套页面这里也一起研究吧,另外还有window.navigate(…)、window.location.href="…"、window.history.back(-1);都是实现同意页面内容跳转的,这里不讨论。

1、open子窗口:用window.opener代表父窗口的window对象

2、模态子窗口:间接通过传window对象到子窗口,然后子窗口可获得父窗口的window对象

3、iframe中子页面:用window.parent代表父窗口的window对象

父页面:1.htm    代码:

<html>
<head>
<title>打开父子窗口传值研究-父窗口</title>

<script >
var parValue="现在显示了父窗口中的变量值";

function test(){
alert("现在显示了父窗口中的方法正常执行");
}

</script>
</head>
<body >
<input type="button" id="mybutton1"    value="打开open新窗口"    onclick="window.open(‘2.htm’);">
<input type="button" id="mybutton2"    value="打开modal窗口"    onclick="window.showModalDialog(‘3.htm’,window);" >
<br>
<iframe id="subiframe"    name="subiframe"     src="4.htm" scrolling="auto" frameborder="1" ></iframe>
</body>
</html>

2.htm 代码:

<html>
<head>
<title>打开父子窗口传值研究-open打开子窗口</title>
<script>
var buttonValue=window.opener.document.getElementById("mybutton2").value //获取父窗口中的对象
var parentValue=window.opener.parValue;       //获取父窗口中的变量

function doParTest(){
window.opener.test();       //调用父窗口中的方法

}
</script>
</head>
<body>

<input type="button" value="open打开子窗口按钮" onclick="alert(‘buttonValue:’+buttonValue);alert(‘parentValue:’+parentValue);doParTest()">

</body>
</html>

3.htm 代码:

<html>
<head>
<title>打开父子窗口传值研究-打开modal子窗口</title>
<script>
var parentWin=window.dialogArguments;
var buttonValue=parentWin.document.getElementById("mybutton2").value //获取父窗口中的对象
var parentValue=parentWin.parValue;      //获取父窗口中的变量
function doParTest(){
parentWin.test(); //调用父窗口中的方法
}
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">

<input type="button" value="modal子窗口按钮" onclick="alert(‘buttonValue:’+buttonValue);alert

(‘parentValue:’+parentValue);parentWin.test();">
</body>
</html>

4.htm    代码:

<html>
<head>
<title>打开父子窗口传值研究-iframe中子窗口</title>
<script>
var buttonValue=window.parent.document.getElementById("mybutton2").value //获取父窗口中的对象
var parentValue=window.parent.parValue;       //获取父窗口中的变量

function doParTest(){
window.parent.test(); //调用父窗口中的方法
}
</script>
</head>
<body>

<input type="button" value="iframe中子窗口按钮" onclick="alert(‘buttonValue:’+buttonValue);alert(‘parentValue:’+parentValue);doParTest()">

</body>
</html>

了解更多

js 图片超出范围就自动缩小的代码

05.30.2010, js 图片超出范围就自动缩小的代码已关闭评论, js, by .

<img   src= "… "   onload= "autoresize(this) ">
function   autoresize(obj){
    if(obj.width> 800)
        obj.width=800;
}

了解更多

JS关键字加红加亮

02.08.2010, JS关键字加红加亮已关闭评论, js, by .

单关键词

 

<div id="txt">
用JS让文章内容指定的关键字加亮

是这样的..
现在有这些关键字:美容,生活,购物
当在文章里头出现这些关键字,就把它加亮显示..

文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现…
不知道怎样来实现这样的功能啊?特此求助
</div>
<script language="JavaScript">
txt.innerHTML = txt.innerHTML.replace(/文章/gi,"<font color=red>文章</font>");
</script>

 

多关键词

 

<div id="txt">
用JS让文章内容指定的关键字加亮

是这样的..

现在有这些关键字:美容,生活,购物
当在文章里头出现这些关键字,就把它加亮显示..

文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现…
不知道怎样来实现这样的功能啊?特此求助
</div>
<script language="JavaScript">
txt.innerHTML = txt.innerHTML.replace(/(文章)|(关键字)|(功能)/gi,"<font color=red>$1$2$3</font>");
</script>

 

 

 

 

<pre>
用JS让文章内容指定的关键字加亮

是这样的..

现在有这些关键字:美容,生活,购物
当在文章里头出现这些关键字,就把它加亮显示..

文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现…
不知道怎样来实现这样的功能啊?特此求助
</pre>

<script language="JavaScript">
function highlight(key) {
    var key = key.split(‘|’);
    for (var i=0; i<key.length; i++) {
        var rng = document.body.createTextRange();
        while (rng.findText(key[i]))
        rng.pasteHTML(rng.text.fontcolor(‘red’));
    }
}
highlight(‘文章|关键|功能’)
</script>

详细出处参考:http://www.jb51.net/article/5768.htm

了解更多

JS全角转半角

02.06.2010, JS全角转半角已关闭评论, js, by .

一、用JS把全角转换成半角(不能转换标点符号)
<input type="text" size="10" maxlength="10"
onkeyup="javascript:var t = ”; with(this.value) { for (var i = 0; i < length; i++) t += (65296 <= charCodeAt(i) && charCodeAt(i) <= 65305) ? String.fromCharCode(charCodeAt(i) – 65248) : charAt(i); } this.value = t;"
/>
<br>
<br>
二、用JS把全角转换成半角的函数
<input name="n" type="text" id="n" onkeyup="CtoH(this);" />
<script>
function CtoH(obj)
{
var str=obj.value;
var result="";
for (var i = 0; i < str.length; i++)
{
if (str.charCodeAt(i)==12288)
{
result+= String.fromCharCode(str.charCodeAt(i)-12256);
continue;
}
if (str.charCodeAt(i)>65280 && str.charCodeAt(i)<65375)
result+= String.fromCharCode(str.charCodeAt(i)-65248);
else result+= String.fromCharCode(str.charCodeAt(i));
}
obj.value=result;
}
</script>
<br>
<br>
三、用JS把全角转换成半角(只允许输入数字、小数点与负号)
<input
    onkeypress="var   k=event.keyCode;   return   k>=48&&k<=57||k==46||k==45"
    onpaste="return   !clipboardData.getData(‘text’).match(/\D/)"
    ondragenter="return   false"   style="ime-mode:Disabled"
>
<br>
<br>
四、用JS把全角转换成半角(只允许输入数字)
<input
    onkeypress="var   k=event.keyCode;   return   k>=48&&k<=57"
    onpaste="return   !clipboardData.getData(‘text’).match(/\D/)"
    ondragenter="return   false"   style="ime-mode:Disabled"
>
<br><br>
五、不允许输入全角字符
<INPUT name="CardId" onKeyUp="quanjiao(this);">
<script language="javascript">
function quanjiao(obj)
{
    var str=obj.value;
    if (str.length>0)
    {
        for (var i = str.length-1; i >= 0; i–)
        {
            unicode=str.charCodeAt(i);
            if (unicode>65280 && unicode<65375)
            {
                alert("不能输入全角字符,请输入半角字符");
                obj.value=str.substr(0,i);
            }
        }
    }
}

了解更多

AJAX+JavaScript无刷新检查用户名

02.06.2010, AJAX+JavaScript无刷新检查用户名已关闭评论, js, by .

AJAX+JavaScript无刷新检查用户名是否可用2009-04-20 16:26   JavaScript 和 Ajax 代码
<script language="javascript" type="text/javascript">
var xmlHttp = null;
        function createXMLHttp()
        {
            if(window.ActiveXObject)
                {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }
            else if(window.XMLHttpRequest)
                {
                    xmlHttp = new XMLHttpRequest();
                }
        }
        function checka()
        {
            createXMLHttp();              
            var txtName=document.getElementById("txt_name"); // 获取输入用户名控件
            var labName=document.getElementById("lab_name"); // 显示提示信息的控件
   // 判断用户名格式和长度(只能是数字和字母组合)
   // 错误情况一
                if(!txtName.value.match(/^[a-zA-Z0-9]+$/) && txtName.value.length < 5 || txtName.value.length >16)
                    {  
                      labName.style.color="#cc0000";
                      labName.value="请输入6-12位用户名,只能由数字字母组合。";
                      return false;
                        }else
    // 正确
                      if(txtName.value.length > 5 && txtName.value.length <17 && txtName.value.match(/^[a-zA-Z0-9]+$/))
                      {               
                            labName.style.color="#0000ff";
                            var url = "CheckName.aspx?userName="+txtName.value;
                            xmlHttp.open("post",url,true);
                            xmlHttp.onreadystatechange = sub;
                            xmlHttp.send(null);
                      }
    // 错误情况二
    else
                      {
                        labName.style.color="#cc0000";
                        labName.value="请输入6-12位用户名,只能由数字字母组合。";   
                        return false;       
                      }
        }
        function sub()
        {
            if(xmlHttp.readyState==4)
            {
                if(xmlHttp.status==200)
                {
                    document.getElementById("lab_name").value=xmlHttp.responseText;
                }
            }
        }

</script>

HTML 页面控件以及方法调用
// onfocus 获取到光标事件 onblur 光标离开时候事件
<asp:TextBox ID="txt_name" runat="server" CssClass="t_txt" onfocus="checkName();" onblur="checka();"></asp:TextBox>
// 我用的 TextBox ,兼容 IE 和 Firefox 样式
<asp:TextBox ID="lab_name" runat="server" Width="300px" style="border-top-style:none; border-width:0px; border-left-style:none; border-bottom-style:none; border-right-style:none;" ReadOnly="true"></asp:TextBox>

新建一张页面具体数据操作

SQL 连接以及语句略……

新页面 方法
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (CheckNames(Request.QueryString["userName"]) == true)
       &#
160;        {
                    Response.Write("对不起,该用户名已被占用!");
                }
                else
                {
                    Response.Write("恭喜,该用户名可以使用!");
                }
            }

        }

private bool CheckNames(string userName)
        {
            // 创建一个数据集
            DataSet ds = new DataSet();
            // 实例化模型层
            ZYB_UserLogin uiModel = new ZYB_UserLogin();
            // 封装数据
            uiModel.UNL_UserLoginName = userName;
            // 实例化业务层
            UserLoginBLL uiBll = new UserLoginBLL();
            try
            {
                // 调用业务层的检查用户名方法
                ds = uiBll.SelectNameCheck(uiModel);
                // 判断是否有数据
                if (ds.Tables[0].Rows.Count < 1)
                {
                    // 没有代表可用                                      
                    return false;
                }
                else
                {
                    // 不可用                   
                    return true;
                }
            }
            catch (Exception ex)
            {
                // 抛出异常
                throw ex;
            }
        }

了解更多