??xml version="1.0" encoding="utf-8" standalone="yes"?>
实现的功?/span>
1 、可以调整显C数据的位置、字体和大小Qcertprint.cssQ;
2 、可以设|背景图片和囄大小Q?/span>
3 、可以获得数据调整后的位|(方便数据库保存,无需每次都设|)Q?/span>
4 、可以设|打印属性(仅限 IE Q: header/footer 、横?/span> / U向、打印页边距Q?/span>
5
、可以跨览器用(除打印设|)Q?/span>
IE
?/span>
FireFox
?/span>
Netscape;
技术点
1?span style="FONT: 7pt 'Times New Roman'"> 元素拖拽技?/span> dragdrop.js Q?/span>
2?span style="FONT: 7pt 'Times New Roman'"> 对象序列?/span> json.js Q?/span>
3?span style="FONT: 7pt 'Times New Roman'"> 控制打印 ScriptX Q?/span>
4?span style="FONT: 7pt 'Times New Roman'"> DHTML Q?/span>
5?span style="FONT: 7pt 'Times New Roman'">
览器兼?/span>
w3c
Q?br />
使用Ҏ
在你的项目中建立一个类g
certprint.html
的动态页面,参照
toInit()
Ҏ讄打印属性和需要打印数据,在打印数据调整完毕可以调?/span>
collectDataPos()
获得调整后的数据位置Q可以保存到数据库?br />
1、?”ؓ通配W,表示M一个字W,例如Q“a.c”可以匹配“anc”、“abc”、“acc”;
2、“[]”,在[]内可以指定要求匹配的字符Q例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc”;但不可以匚w“ancc?a到z可以写成[a-z],0?可以写成[0-9];
3、数量限定符P表示匚wơ数Q或者叫做长度)的符P
包括Q?”—?ơ或者多?br /> ?”—?ơ或者多?br /> ?”—?ơ或??br /> “{n}”——匹配nơ,n为整?br /> “{n,m}”——匹配从n到m之间的某个数的次敎ͼn和m都是整数Q?br /> “{n,}”——匹配n到无Ih之间Lơ数Q?br /> “{,m}”——匹?到m之间Lơ数Q?br />他们攑ֈ匚w格式的后面:
例如Q?br />电话LQ?24Q?4820482Q?2484820482(假设前面3或?位,后面7或?位,q且中间的减号可有可?
都是W合规定的,那么可以用如下格式来匚wQ[0-9]{3,4} \-? [0-9]{7,8}Q?br />注意Q“\”ؓ转义字符Q因为?”在正则表达式用有代表一个范围的意义Q例如:前面所说的[0-9]Q?/font>
所以它需要{义字W“\”进行{义才可用;
4、“^”ؓ否符P表示不想匚w的符P例如Q[^z][a-z]+可以匚w所有除“z”开头的以外的所有字
W串Q长度大?Q因为?”表C大于等?的次敎ͼ从第二位开始都是小写英文字W)Q?br />如果^攑ֈ[]的外边则表示以[]开头的字符Ԍ^[az][a-z]+表示a或者z开头的长度大于{于2的英文字W?/font>
Ԍ
5、“|”或q算W,例如Qa[n|bc|cb]c可以匚w“abcc?“anc?“acbc”;
6、?”以它前面的字符l尾的;例如Qab+$可以被“abb”,“ab”匹配;
7、一些简单表C方法:
\d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],是I格字符包括tab
Q空格等{?\S表示[^\t\n\r\f]Q就是非I格字符;
8、常用的匚wQ?br />匚w中文字符Q?“[\u4e00-\u9fa5]”;
匚w双字节字W?包括汉字在内)Q“[^\x00-\xff]”;
匚wI的正则表辑ּQ“\n[\s| ]*\r”;
匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/”;
匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$)”;
匚w非负整数Q正整数 + 0Q:“^\d+$”;
匚w正整敎ͼ“^[0-9]*[1-9][0-9]*$”;
匚w非正整数Q负整数 + 0Q:“^((-\d+)|(0+))$”;
匚w负整敎ͼ“^-[0-9]*[1-9][0-9]*$”;
匚w整数Q“^-?\d+$”;
匚w非负点敎ͼ正QҎ + 0Q:“^\d+(\.\d+)?$?br />匚w正QҎQ“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*
))$”;
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匚w非正点敎ͼ负QҎ + 0Q?
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匚w
负QҎ
匚w点敎ͼ“^(-?\d+)(\.\d+)?$”;
匚w由数字?6个英文字母或者下划线l成的字W串Q“^\w+$”;
匚wemail地址Q“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”;
匚wurlQ“^[a-zA-z]+://匚w(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$?br />
下面是正则表辑ּ中的一些常用模式?/font>
/pattern/ l果
. 匚w除换行符以外的所有字W?
x? 匚w 0 ơ或一?x 字符?
x* 匚w 0 ơ或多次 x 字符Ԍ但匹配可能的最次?
x+ 匚w 1 ơ或多次 x 字符Ԍ但匹配可能的最次?
.* 匚w 0 ơ或一ơ的M字符
.+ 匚w 1 ơ或多次的Q何字W?
{m} 匚w刚好?m ?的指定字W串
{m,n} 匚w?m?以上 n?以下 的指定字W串
{m,} 匚w m?以上 的指定字W串
[] 匚wW合 [] 内的字符
[^] 匚w不符?[] 内的字符
[0-9] 匚w所有数字字W?
[a-z] 匚w所有小写字母字W?
[^0-9] 匚w所有非数字字符
[^a-z] 匚w所有非写字母字符
^ 匚w字符开头的字符
$ 匚w字符l尾的字W?
\d 匚w一个数字的字符Q和 [0-9] 语法一?
\d+ 匚w多个数字字符Ԍ?[0-9]+ 语法一?
\D 非数字,其他?\d
\D+ 非数字,其他?\d+
\w 英文字母或数字的字符Ԍ?[a-zA-Z0-9] 语法一?
\w+ ?[a-zA-Z0-9]+ 语法一?
\W 非英文字母或数字的字W串Q和 [^a-zA-Z0-9] 语法一?
\W+ ?[^a-zA-Z0-9]+ 语法一?
\s I格Q和 [\n\t\r\f] 语法一?
\s+ ?[\n\t\r\f]+ 一?
\S 非空|?[^\n\t\r\f] 语法一?
\S+ ?[^\n\t\r\f]+ 语法一?
\b 匚w以英文字?数字界的字符?
\B 匚w不以英文字母,数gؓ边界的字W串
a|b|c 匚wW合a字符 或是b字符 或是c字符 的字W串
abc 匚w含有 abc 的字W串
(pattern) () q个W号会记住所扑֯到的字符Ԍ是一个很实用的语法。第一?() 内所扑ֈ的字W串
变成 $1 q个变量或是 \1 变量Q第二个 () 内所扑ֈ的字W串变成 $2 q个变量或是 \2 变量Q以?br />cL下去。?
/pattern/i i q个参数表示忽略英文大小写,也就是在匚w字符串的时候,不考虑英文的大写问题?
\ 如果要在 pattern 模式中找M个特D字W,?"*"Q则要在q个字符前加?\ W号Q这h会让Ҏ
字符失效
3、正则表辑ּ的八大原?br /> 如果?Unix 中曾l用过 sed、awk、grep q些命o的话Q相信对于正则表辑ּ(Regular Expression)
不会感到陌生。下面给大家介绍几条正则表达式用过E中?8 大原则?
正则表达式在对付数据的战斗中可Ş成庞大的联盟——这常常是一场战争。我们要C下面八条原则Q?/font>
· 原则1Q正则表辑ּ有三U不同Ş?匚w(m/ /)Q替?s/ / /eg)和{?tr/ / /))?/font>
· 原则2Q正则表辑ּ仅对标量q行匚w( $scalar =~ m/a/; 可以工作; @array =~ m/a/ 把@array作ؓ标量
对待Q因此可能不会成??/font>
· 原则3Q正则表辑ּ匚w一个给定模式的最早的可能匚w。缺省时Q仅匚w或替换正则表辑ּ
一? $a = 'string string2'; $a =~ s/string/ /; D $a = 'string 2')?/font>
· 原则4Q正则表辑ּ能够处理双引h能处理的L和全部字W? $a =~ m/$varb/ 在匹配前把varb扩展?br />变量Q如?$varb = 'a' $a = 'as'Q?a =~ s/$varb/ /; {h?$a =~ s/a/ /; Q执行结果 $a = " s" )?/font>
· 原则5Q正则表辑ּ在求DE中产生两种情况Q结果状态和反向引用Q?$a=~ m/pattern/ 表示 $a 中是否有
子串 pattern 出现Q?a =~ s/(word1)(word2)/$2$1/ 则“调换”这两个单词?/font>
· 原则6Q正则表辑ּ的核心能力在于通配W和多重匚wq算W以及它们如何操作?a =~ m/\w+/ 匚w一个或多个
单词字符Q?a =~ m/\d/" 匚w零个或多个数字?/font>
· 原则7Q如果欲匚w不止一个字W集合,Perl使用 "|" 来增加灵zL。如果输?m/(cat|dog)/ 则相当于“匹?br />字符?cat 或?dog?/font>
· 原则8QPerl?(?..) 语法l正则表辑ּ提供扩展功能?/font>
<body onload="initbody()">
<table border="1">
<tr>
<td width="149" id='name1'>姓名Q?lt;/td>
<td width="149"> </td>
</tr>
<tr>
<td id='age1'>q龄Q?lt;/td>
<td> </td>
</tr>
<tr>
<td id='gender1'>性别Q?lt;/td>
<td> </td>
</tr>
</table>
</body>
</html>
2、init.js
function initbody(){
var controller= new LanguageController();
name1.innerHTML=controller.language.titles["Name"];
age1.innerHTML=controller.language.titles["Age"];
gender1.innerHTML=controller.language.titles["Gender"];
}
3、en.js
function LanguageController() {
this.language = {
lang: "zh-cn",
buttons: {
"ok": "ok",
"cancel": "cancel"
},
titles: {
"Name": "name",
"Age": "age",
"Gender": "gender"
}
};
}
4、zh-cn.js
function LanguageController() {
this.language = {
lang: "zh-cn",
buttons: {
"ok": "定",
"cancel": "取消"
},
titles: {
"Name": "姓名",
"Age": "q龄",
"Gender": "性别"
}
};
}
在?/SPAN>htmlarea3.0Ӟ~写的文本后台获得不了?/SPAN>
分析
阅读htmlarea.jsQ发?/SPAN>
window.onunload = function() { editor._textArea.value = editor.getHTML(); }; |
可见htmlarea~辑的文本是?/SPAN>window.onunload事g中填充到你定义的textarea中的。但此时有可?/SPAN>form post出去了,?/SPAN>window.onunload事gq没有执行完毕?/SPAN>
解决
注释以上脚本Q在提交按钮事g中加?/FONT>
//接受htmlarea的内?/SPAN> document.all.textareaName.value = editor.getHTML(); |
<html> <head> <script language="JavaScript1.2"> <!-- //定义菜单内容 var menucontents='<a >www.google.com</a> | <a >www.gsuo.com</a> | <a >www.baidu.com</a> | <a --> </script> </head> <body onload="initmenu(testmenu,menucontents);"> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td width="200"> test1 </td> <td width="200"> test2 </td> </tr> <tr> <td id="testmenu" colspan="2" valign="middle"> </td> </tr> </table> </body> <script language="JavaScript1.2"> <!-- //配置菜单宽度 var menuwidth=300 //定义滚动速度(1-10),大快 var scrollspeed=6 //==========以下不需要修?/SPAN>============// var actualwidth=0 function initmenu(menuContainer,menuContent){ menuContainer.innerHTML='<table border="0" cellspacing="0" cellpadding="0"><tr><td valign="middle"><a href=# style="TEXT-DECORATION:none;" onMouseover="moveright()" onMouseout="clearTimeout(righttime)"><<<</a> </td><td valign="top">' +'<span style="position:relative;width:'+menuwidth+';">' +'<span style="position:absolute;width:'+menuwidth+';clip:rect(0 '+menuwidth+' auto 0)">' +'<span id="menu" style="position:absolute;left:0;top:0">' +'<nobr>'+menuContent+'</nobr>' +'</span></span></span>' +'</td><td valign="middle"> <a href="#" style="TEXT-DECORATION:none;" onMouseover="moveleft()" onMouseout="clearTimeout(lefttime)">>>></a></td></tr></table>'; actualwidth=menu.offsetWidth; } function moveleft(){ if (document.all&&menu.style.pixelLeft>(menuwidth-actualwidth)) menu.style.pixelLeft-=scrollspeed lefttime=setTimeout("moveleft()",50) } function moveright(){ if (document.all&&menu.style.pixelLeft<0) menu.style.pixelLeft+=scrollspeed righttime=setTimeout("moveright()",50) } --> </script> </html> |