Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
<label for=”male”>Male</label>
<input id=”male” name=”sex” type=”radio” value=”on” />
<label for=”male”>Male</label>
<input id=”male” name=”sex” type=”radio” value=”on” />
typeof(undefined) == ‘undefined’
typeof(null) == ‘object’
虽然 null == undefined的结果(true) 但还是有区别的,就是和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
rgb(207,0,0)转换为#就是#CF0000 即:求对应的数据的16进制即可,这也可能明白为什么rgb最大为255,因为15*15=255,16进制有15个数字表示。
电脑显示器一般用分辨率来表示,电脑是1440×900分辨率,指的是每一条水平线上包含有1440个像素点,一个像素就是一个点,如果把一个像素放大,会发现,一个像素原来是一个小正方形,很像画在纸上的小方格子。显示器上布满了密密麻麻的这样的点,或这样的小正方形,我们看到屏幕上的图像,正是由这些点组成的。
毫米、厘米、米、英寸、英尺等都是绝对单位,无论把它放到什么地方,其值都是不变的。然而,像素就不是这回事了,像素的值是相对的,是由显示器的分辨率和显示器的大小决定的。比如把显示器的分辨率先设置成800×600像素,然后再设置成1024×768像素,前者的一像素就比后者的一像素要大
计算方式:比如说17的显示器(显示器大小指斜对线),分辨率为1024*768,则1像素=17*(17/25)开方*25.4毫米=0.313毫米 (1英寸=25.4毫米)
var tb = document.getElementById('mytab');
var rowNum=tb.rows.length;
for (i=0;i<rowNum;i++)
{
alert(tb.rows[i]);
}
js 只是会在本地出现,上传到服务器上就不会了。
activeX则无论是在本地还是服务器都会显示。
若想在本地调试时不出现,可设置:工具-Internet选项-高级-允许活动内容在我的计算机文件上运行 打勾。
在本地弹出显示的原因:
网页中可能会加载远程的JS文件,所以会阻止,IE不会让本机一个网页加载其它域上的活动脚本内容的,但是如果你通过浏览器直接访问,因为js脚本和网站是同一个域,所以IE不会拦截。
那就要在keypress时保证文本框的光标在尾部,而文本框value赋值后其光标默认在最后,故可采用如下方式:
<input name=”” type=”text” onkeypress=”this.value=this.value” />
?<asp:TextBox ID=”txtTel” runat=”server” CssClass=”MustInputText” Width=”164″ AutoPostBack=”true”
??????????????? OnTextChanged=”txtTel_TextChanged” onkeydown=”check(this);” onkeyup=”check(this);” onchange=”return check(this);”></asp:TextBox>
? function check( tel ){
???????????? var e?? =?? window.event
??????????? //alert(e.keyCode);
?????????? ? if (e.keyCode == 8 ||e.keyCode ==46 || e.keyCode == 35 ||e.keyCode ==36||e.keyCode ==37||e.keyCode ==38||e.keyCode ==39||e.keyCode ==40 ){
?????????????? //避免backspace,delete,上、下、左、右、home,end不可用
??????????? }else{
??????????? tel.value = tel.value.replace(” “,””).replace(“\\”,”,”).replace(“-“,””).replace(“?”,””).replace(“(“,””).replace(“)”,””).replace(“(”,””).replace(“)”,””).replace(“、”,”,”).replace(“,”,”,”);
??????????? //alert(tel.length);
??????????? tel.focus();
??????????? if (tel.value.length>8){
??????????????? setTimeout(‘__doPostBack(\’txtTel\’,\’\’)’, 0);
??????????? }}
??????? }
1,观察对方网站的URL,看提交时是否用get方法,这样就可直接用url传参。
?2,若采用post方法,则在页面中定义和对方网站一样的变量,提交时action指向对方网站即可。
?<form name=”formQuery1″ method=”post” action=”http://www.nb315.com/CGI_EXE/BenowQuery.DLL”
??????????????????????????????????????????? enctype=”application/x-www-form-urlencoded” target=”_blank”>
???????????????? …………………………………
??????????????? </form>
利用Javascript中每个对象(Object)的prototype属性我们可以为Javascript中的内置对象添加我们自己的方法和属性。可直接调用!//自定义扩展方法,供外部调用
String.prototype.isNull = testNull;//判断是否为空
String.prototype.number = testNumber;//判断数字,只能为整数
String.prototype.doubleNumber = testDoubleNumber;//判断数字,可以为小数
String.prototype.zip = testZip;//判断邮政编码格式
String.prototype.phone = testPhoneNumber;//判断联系电话、传真格式
String.prototype.email = testEmail;//判断电子邮箱格式
//判断是否为空,为空则返回true
function testNull(){
if(this.replace(/(^\s*)|(\s*$)/g, '').length<=0)
{//为空
return true;
}
else{//不为空
return false;
}
}
//判断是否为数字,是数字则返回true
function testNumber()
{
if(!this.isNull()){
for(i=0;i"9")
{
return false;
}
}
return true;
}
else
{
return true;
}
}
//判断邮政编码格式,格式正确返回true
function testZip()
{
if(!this.isNull()){
if(this.length!=6)
{
return false;
}
else
{
var rexTel=/^[0-9]+$/;
if(!rexTel.test(this))
{
return false;
}
}
}
return true;
}
//判断联系电话、传真格式,格式正确返回true
function testPhoneNumber()
{
if(!this.isNull()){
var reg=/(^[0-9]{3,4}\-[0-9]{7,8}\-[0-9]{3,4}$)|(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}\-[0-9]{3,4}$)|(^[0-9]{7,15}$)/;
if(!reg.test(this))
{
return false;
}
return true;
}
else
{
return true;
}
}
//判断电子邮箱格式,格式正确返回true
function testEmail()
{
if(!this.isNull()){
if(this.search(/^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/)!=-1)
{
return true;
}
else
{
return false;
}
}
else
{
return true;
}
}
//判断是否是数字,可以为小数,格式正确返回true
function testDoubleNumber()
{
var pointCount=0;
for(var i=0;i'9')&&this.charAt(i)!='.'){
return false;
}
else{
if(this.charAt(i)=='.')pointCount++;
}
}
if(pointCount>1){
return false;
}else if(pointCount==1&&this.trim().length==1){
return false;
}
return true;
}
//自定义扩展方法,供外部调用
String.prototype.isNull = testNull;//判断是否为空
String.prototype.number = testNumber;//判断数字,只能为整数
String.prototype.doubleNumber = testDoubleNumber;//判断数字,可以为小数
String.prototype.zip = testZip;//判断邮政编码格式
String.prototype.phone = testPhoneNumber;//判断联系电话、传真格式
String.prototype.email = testEmail;//判断电子邮箱格式
//判断是否为空,为空则返回true
function testNull(){
if(this.replace(/(^\s*)|(\s*$)/g, '').length<=0)
{//为空
return true;
}
else{//不为空
return false;
}
}
//判断是否为数字,是数字则返回true
function testNumber()
{
if(!this.isNull()){
for(i=0;i"9")
{
return false;
}
}
return true;
}
else
{
return true;
}
}
//判断邮政编码格式,格式正确返回true
function testZip()
{
if(!this.isNull()){
if(this.length!=6)
{
return false;
}
else
{
var rexTel=/^[0-9]+$/;
if(!rexTel.test(this))
{
return false;
}
}
}
return true;
}
//判断联系电话、传真格式,格式正确返回true
function testPhoneNumber()
{
if(!this.isNull()){
var reg=/(^[0-9]{3,4}\-[0-9]{7,8}\-[0-9]{3,4}$)|(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}\-[0-9]{3,4}$)|(^[0-9]{7,15}$)/;
if(!reg.test(this))
{
return false;
}
return true;
}
else
{
return true;
}
}
//判断电子邮箱格式,格式正确返回true
function testEmail()
{
if(!this.isNull()){
if(this.search(/^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/)!=-1)
{
return true;
}
else
{
return false;
}
}
else
{
return true;
}
}
//判断是否是数字,可以为小数,格式正确返回true
function testDoubleNumber()
{
var pointCount=0;
for(var i=0;i'9')&&this.charAt(i)!='.'){
return false;
}
else{
if(this.charAt(i)=='.')pointCount++;
}
}
if(pointCount>1){
return false;
}else if(pointCount==1&&this.trim().length==1){
return false;
}
return true;
}
1,复制:
??? function MyCopy(ob){
?? ??? ?oTextRange=document.body.createTextRange();??
?? ???? oTextRange.moveToElementText(obj);? // TextRange 对象使其起始点之间包含指定对象内的文本。??
?? ??? ?oTextRange.select();??
?? ???? oTextRange.execCommand(“Copy”);??
??? }
2,粘贴:
function myPase(? ){
??? var obj = document.getElementById(“mytext”);
??? js=obj.createTextRange();
??? js.execCommand(“Paste”);
}
3,execCommand
execCommand(“Copy”)
text如下:
BackColor?设置或获取当前选中区的背景颜色。
Bold 切换当前选中区的粗体显示与否。
Copy 将当前选中区复制到剪贴板。
CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。
CreateLink?在当前选中区上插入超级链接,或显示一个对话框允许用户指定要为当前选中区插入的超级链接的?URL。?
Cut?将当前选中区复制到剪贴板并删除之。?
Delete?删除当前选中区。?
FontName?设置或获取当前选中区的字体。?
FontSize?设置或获取当前选中区的字体大小。?
ForeColor?设置或获取当前选中区的前景(文本)颜色。?
FormatBlock?设置当前块格式化标签。?
Indent?增加选中文本的缩进。?
InsertButton?用按钮控件覆盖当前选中区。?
InsertFieldset?用方框覆盖当前选中区。?
InsertHorizontalRule?用水平线覆盖当前选中区。?
InsertIFrame?用内嵌框架覆盖当前选中区。?
InsertImage?用图像覆盖当前选中区。?
InsertInputButton?用按钮控件覆盖当前选中区。?
InsertInputCheckbox?用复选框控件覆盖当前选中区。?
InsertInputFileUpload?用文件上载控件覆盖当前选中区。?
InsertInputHidden?插入隐藏控件覆盖当前选中区。?
InsertInputImage?用图像控件覆盖当前选中区。?
InsertInputPassword?用密码控件覆盖当前选中区。?
InsertInputRadio?用单选钮控件覆盖当前选中区。?
InsertInputReset?用重置控件覆盖当前选中区。?
InsertInputSubmit?用提交控件覆盖当前选中区。?
InsertInputText?用文本控件覆盖当前选中区。?
InsertMarquee?用空字幕覆盖当前选中区。?
InsertOrderedList?切换当前选中区是编号列表还是常规格式化块。?
InsertParagraph?用换行覆盖当前选中区。?
InsertSelectDropdown?用下拉框控件覆盖当前选中区。?
InsertSelectListbox?用列表框控件覆盖当前选中区。?
InsertTextArea?用多行文本输入控件覆盖当前选中区。?
InsertUnorderedList?切换当前选中区是项目符号列表还是常规格式化块。?
Italic?切换当前选中区斜体显示与否。?
JustifyCenter?将当前选中区在所在格式化块置中。?
JustifyLeft?将当前选中区所在格式化块左对齐。
JustifyRight?将当前选中区所在格式化块右对齐。
MultipleSelection?允许当用户按住?Shift?或?Ctrl?键时一次选中多于一个站点可选元素。
Outdent?减少选中区所在格式化块的缩进。?
OverWrite?切换文本状态的插入和覆盖。?
Paste?用剪贴板内容覆盖当前选中区。
Print?打开打印对话框以便用户可以打印当前页。
Refresh?刷新当前文档。?
RemoveFormat?从当前选中区中删除格式化标签。?
RemoveParaFormat?目前尚未支持。?
SaveAs?将当前?Web?页面保存为文件。?
SelectAll?选中整个文档。
UnBookmark?从当前选中区中删除全部书签。?
Underline?切换当前选中区的下划线显示与否。?
Undo?目前尚未支持。?
Unlink?从当前选中区中删除全部超级链接。?
Unselect?清除当前选中区的选中状态。
?createTextRange: 将文本转成对象
1,得到文本 text , html:htmlText
var rng=document.body.createTextRange();
alert(rng.text)
2,移动光标mg.collapse(false); true开头,false结尾
3,findText(text,-1,1))
findText(sText [, iSearchScope] [, iFlags])
在Range中查找sText
iSearchScope 开始位置,负数方向搜索
iFlags 2(整词匹配) 4(区别大小写)
4,moveStart(sUnit [, iCount])
moveEnd(sUnit [, iCount])
移动Range的开头或结尾
sUnit character(字) word(词) sentence(句) textedit(Range)
iCount 移动数量,默认为1
5,moveToPoint(iX, iY)
移动光标到坐标(iX,iY)
pasteHTML(sHTMLText)
替换Range中的html
6,select()
选中Range
?JS是大小写敏感的
如:innerText 写成 innertext将不会执行
????? innerHTML 写成 innerHtml也不会执行
?document.getElementById(“WebUrl”).innerHTML+=”<br/><input type=’text’ name=’txt”+i+”‘ id=’txt”+i+”‘ style=’width:400′ ><input type=’button’ name=’txt”+i+”‘ id=’dt”+i+”‘ value=’删除’ onclick=’DelText(this)’>”;
传id,改变其innerHTML即可。
focus(): 控件获取焦点,如在input = text中,光标出现在文字最后。
select(); 选取文本, 在input=text中,点击后文字全部选中。
?IE下,当id 为Quantity的找不到时,会找第一个name为Quantity的控件
?FireFox下,只找id
故要为控件指定id,并用getElementById得到
?JS 压缩????????? JS格式化 还原压缩后的js????????????????????? JS加密
?CSS 压缩??
?:合并多余的css, 达到最简洁
格式化JS: http://jsbeautifier.org/
?<input type=”button” ? id = ‘ btn’ style=”display:none;”></input>
显示:document.getElementById(“btn”).style.display=”none”;
利用这样可做出折开隐藏的效果
display:
none | 此元素不会被显示。 |
block | 此元素将显示为块级元素,此元素前后会带有换行符。 |
inline | 默认。此元素会被显示为内联元素,元素前后没有换行符。 |