- 浏览: 707852 次
- 来自: ...
文章分类
最新评论
-
ranguisheng:
可以加点注释,代码不便于阅读.
用java实现数据库连接池的一个简单示例 -
abcd880129:
这样写的话,还要用专门的下载工具,不然,只能下到一个为空的ex ...
ZK下载文件时,不在服务器生成文件直接下载 -
234369425:
同上,是20
java计算阶乘 -
CodeToMyLaw:
如果目录中含有中文呢?
[^\x00-\xff] 中文的 ...
js验证文件目录格式的正确性 -
yanzhoupuzhang:
加了,还是报那个错误!
org.apache.commons.dbcp.BasicDataSource的解决方法
如何使用UBB代码,如何用js与剪贴板交互,如何使用textRange对象,如何使用自定义的快捷键操作,如何自动随窗口大小调整页面内容尺寸,正则表达式的使用等等
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "standards-compliant mode" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>Blue Idea UBB Code Edit</title>
<style>
* {
margin:0px;
padding:0px;
}
html, body {
background-color:buttonface;
width:100%;
height:100%;
overflow:hidden;
border-width:0px;
font-size:13px;
font-family:Verdana Arial 宋体;
color:#333333;
cursor:default;
}
input {border-width:1px;}
#divMain {
overflow:hidden;
}
#divTools {
width:100%;
height:20px;
line-height:20px;
overflow:hidden;
border-bottom:1px solid buttonshadow;
margin:0px;
padding:0px;
padding-left:10px;
background-color:buttonface;
color:black;
}
#divTools label { font-weight:bold;float:left;padding-left:15px;padding-right:15px;}
#divTools a {
display:block;
float:left;
height:20px;
padding-left:15px;
padding-right:15px;
line-height:20px;
text-align:center;
overflow:hidden;
color:black;
text-decoration:none;
}
#divTools a:hover {background-color:gold;color:black;}
#divTools a:active {background-color:navy;color:white;}
#divContent, #txtContent {
border:1px inset buttonface;
width:94%;
height:400px;
overflow:auto;
padding:5px;
margin:2px 15px 0px 15px;
background-color:white;
color:black;
display:none;
}
#txtContent {
font-size:14px;
border-width:1px;
display:block;
}
.UBB_code {
border:1px solid #555;
padding:10px;
margin:10px;
width:500px;
background-color:#DDD;
font-size:13px;
font-weight:normal;
color:black;
}
.UBB_html {
padding:4px;
width:350px;
height:200px;
font-size:13px;
font-weight:normal;
color:black;
}
.UBB_html_button {
width:100px;
height:22px;
line-height:18px;
border-width:2px;
margin:0px;
}
</style>
<script type="text/javascript">
var txtContent, divContent, viewButton01, viewButton02, dtf;
var strHTMLStart="<div><textarea class=\"UBB_html\">";
var strHTMLEnd="<\/textarea><input type=\"button\" value=\"运行代码\" onclick=\"UBB_runCode(this);\" class=\"UBB_html_button\" \/><\/div>";
var strCodeStart="<div class=\"UBB_code\">";
var strCodeEnd="<\/div>";
function init(){
txtContent=document.getElementById("txtContent");
divContent=document.getElementById("divContent");
viewButton01=document.getElementById("viewButton01");
viewButton02=document.getElementById("viewButton02");
dtfFrame=document.createElement("iframe");
dtfFrame.frameBorder="0px";
dtfFrame.style.width="0px";
dtfFrame.style.height="0px";
document.body.appendChild(dtfFrame);
dtf=window.frames[window.frames.length-1];
dtf.location.href="about:blank";
window.onresize=switchModel;
txtContent.onkeydown=chkKey;
switchModel(0);
}
function switchModel(id){
// 重新计算输入区域大小
txtContent.style.width=document.body.clientWidth-50+"px";
txtContent.style.height=document.body.clientHeight-50+"px";
divContent.style.width=document.body.clientWidth-50+"px";
divContent.style.height=document.body.clientHeight-50+"px";
if(id==0){ // 转到代码视图
divContent.style.display="none";
txtContent.style.display="block";
viewButton01.style.backgroundColor="navy";
viewButton01.style.color="white";
viewButton02.style.backgroundColor="";
viewButton02.style.color="";
txtContent.focus();
}else if(id==1){ // 转到预览视图
divContent.style.display="block";
txtContent.style.display="none";
divContent.innerHTML=UBB2HTML(txtContent.value);
viewButton02.style.backgroundColor="navy";
viewButton02.style.color="white";
viewButton01.style.backgroundColor="";
viewButton01.style.color="";
divContent.focus();
}
}
function HTML2UBB(strHTML){
var re=htmlDecode(strHTML);
re=re.replace(/<(\/?)strong>/ig,"[$1b]");
re=re.replace(/<(\/?)b>/ig,"[$1b]");
re=re.replace(/<(\/?)em>/ig,"[$1i]");
re=re.replace(/<(\/?)i>/ig,"[$1i]");
re=re.replace(/< *(\/?) *div[\w\W]*?>/ig,"\r\n");
re=re.replace(/< *img +[\w\W]*?src=["]?([^">\r\n]+)[\w\W]*?>/ig,"");
re=re.replace(/< *a +[\w\W]*?href=["]?([^">\r\n]+)[\w\W]*?>([\w\W]*?)< *\/ *a *>/ig,"$2");
re=re.replace(/<script[\w\W]+?<\/script>/ig,"");
re=re.replace(/<[\w\W]*?>/ig,"");
re=re.replace(/(\r\n){2,}/g,"\r\n");
return(re);
}
function UBB2HTML(strUBB){
var re=strUBB;
// 转换HTML实体
re=htmlEncode(re);
// 屏蔽 html 和 code 中的 UBB 转意符
re=re.replace(/(\[html\])([\w\W]*?)(\[\/html\])/ig,UBB2HTML_escapeUBB);
re=re.replace(/(\[code\])([\w\W]*?)(\[\/code\])/ig,UBB2HTML_escapeUBB);
// 转换UBB代码为HTML代码
re=re.replace(/\[b\]/ig,"<b>").replace(/\[\/b\]/ig,"<\/b>");
re=re.replace(/\[i\]/ig,"<i>").replace(/\[\/i\]/ig,"<\/i>");
re=re.replace(/\[code\]/ig,strCodeStart).replace(/\[\/code\]/ig,strCodeEnd);
re=re.replace(/\[html\]/ig,strHTMLStart).replace(/\[\/html\]/ig,strHTMLEnd);
re=re.replace(/\[size=(\d)\]/ig,UBB2HTML_fontSize).replace(/\[\/size\]/ig,"<\/span>");
re=re.replace(/\[img\]/ig,"<img src=\"").replace(/\[\/img\]/ig,"\" \/>");
re=re.replace(/\[url\]([\w\W]+?)\[\/url\]/ig,"<a href=\"$1\">$1<\/a>");
re=re.replace(/\[url=([^\]]+?)\]/ig,UBB2HTML_url).replace(/\[\/url\]/ig,"<\/a>");
// 还原 html 和 code 中的 UBB 转意符
re=re.replace(/\\\[/g,"[").replace(/\\\]/g,"]");
return(re);
}
function UBB2HTML_escapeUBB(strAll,strS1,strS2,strS3){
switch(strS1.toLowerCase()){
case "[html]":
return(strS1+htmlDecode(strS2.replace(/\[/g,"\\[").replace(/\]/g,"\\]"))+strS3);
break;
case "":
return(strS1+strS2.replace(/\[/g,"\\[").replace(/\]/g,"\\]")+strS3);
break;
}
}
function htmlEncode(strS){
return(strS.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/ /g," ").replace(/\r\n/g,"<br\/>"));
}
function htmlDecode(strS){
return(strS.replace(/<br\/?>/ig,"\r\n").replace(/ /ig," ").replace(/>/ig,">").replace(/</ig,"<").replace(/&/ig,"&"));
}
function UBB_runCode(obj){
theObj=obj;
while(theObj=theObj.previousSibling)if(String(theObj.tagName).toLowerCase()=="textarea"){
newWin=open();
newWin.document.open();
newWin.document.clear();
newWin.document.write(theObj.value);
newWin.document.close();
return(true);
}
}
function UBB2HTML_fontSize(str,i){
return("<span style=\"font-size:"+(7+i*4)+"px;\">");
}
function UBB2HTML_url(str,strURL){
return("<a href=\""+strURL+"\"\/>");
}
function chkKey(){
var eK=keyChar().toLowerCase();
switch(eK){
case "tab":
setUBB(eK);return(false);
break;
case "b": case "+": case "-":
if(event.ctrlKey){
setUBB(eK);return(false);
}
break;
case "c": case "h": case "i":
if(event.ctrlKey&&event.shiftKey){
setUBB(eK);return(false);
}
break;
case "v":
if(event.ctrlKey&&event.shiftKey){
chkPaste();return(false);
}else if(event.ctrlKey&&event.altKey){
chkPasteH();return(false);
}
break;
}
}
function chkPaste(){
txtContent.focus();
tR=document.selection.createRange();
dtf.document.body.innerHTML="";
dtf.document.body.contentEditable=true;
dtf.document.body.focus();
dtf.document.execCommand("paste");
tR.text=HTML2UBB(dtf.document.body.innerHTML);
tR.select();
}
function chkPasteH(){
txtContent.focus();
tR=document.selection.createRange();
dtf.document.body.innerHTML="";
dtf.document.body.contentEditable=true;
dtf.document.body.focus();
dtf.document.execCommand("paste");
tR.text=(dtf.document.body.innerHTML);
tR.select();
}
function setUBB(type){
var tR, strT, intSize;
var typeCodes=new Array();
switchModel(0);
txtContent.focus();
tR=document.selection.createRange();
strT=tR.text;
switch(type){
case "tab":
tR.text="\t";tR.collapse();tR.select();
break;
case "b":
if(strT.match(/^\[b\][\w\W]*?\[\/b\]$/i)){
tR.text=strT.substring(3,strT.length-4);
tR.moveStart("character",-len(strT)+7);
tR.select();
}else{
tR.text=""+strT+"";
if(strT==""){
tR.moveStart("character",-4);tR.collapse();
}else{
tR.moveStart("character",-len(strT)-7);
}
tR.select();
}
break;
case "i":
if(strT.match(/^\[i\][\w\W]*?\[\/i\]$/i)){
tR.text=strT.substring(3,strT.length-4);
tR.moveStart("character",-len(strT)+7);
tR.select();
}else{
tR.text=""+strT+"";
if(strT==""){
tR.moveStart("character",-4);tR.collapse();
}else{
tR.moveStart("character",-len(strT)-7);
}
tR.select();
}
break;
case "c":
if(strT.match(/^\[code\][\w\W]*?\[\/code\]$/i)){
tR.text=strT.substring(6,strT.length-7);
tR.moveStart("character",-len(strT)+13);
tR.select();
}else{
tR.text="
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "standards-compliant mode" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>Blue Idea UBB Code Edit</title>
<style>
* {
margin:0px;
padding:0px;
}
html, body {
background-color:buttonface;
width:100%;
height:100%;
overflow:hidden;
border-width:0px;
font-size:13px;
font-family:Verdana Arial 宋体;
color:#333333;
cursor:default;
}
input {border-width:1px;}
#divMain {
overflow:hidden;
}
#divTools {
width:100%;
height:20px;
line-height:20px;
overflow:hidden;
border-bottom:1px solid buttonshadow;
margin:0px;
padding:0px;
padding-left:10px;
background-color:buttonface;
color:black;
}
#divTools label { font-weight:bold;float:left;padding-left:15px;padding-right:15px;}
#divTools a {
display:block;
float:left;
height:20px;
padding-left:15px;
padding-right:15px;
line-height:20px;
text-align:center;
overflow:hidden;
color:black;
text-decoration:none;
}
#divTools a:hover {background-color:gold;color:black;}
#divTools a:active {background-color:navy;color:white;}
#divContent, #txtContent {
border:1px inset buttonface;
width:94%;
height:400px;
overflow:auto;
padding:5px;
margin:2px 15px 0px 15px;
background-color:white;
color:black;
display:none;
}
#txtContent {
font-size:14px;
border-width:1px;
display:block;
}
.UBB_code {
border:1px solid #555;
padding:10px;
margin:10px;
width:500px;
background-color:#DDD;
font-size:13px;
font-weight:normal;
color:black;
}
.UBB_html {
padding:4px;
width:350px;
height:200px;
font-size:13px;
font-weight:normal;
color:black;
}
.UBB_html_button {
width:100px;
height:22px;
line-height:18px;
border-width:2px;
margin:0px;
}
</style>
<script type="text/javascript">
var txtContent, divContent, viewButton01, viewButton02, dtf;
var strHTMLStart="<div><textarea class=\"UBB_html\">";
var strHTMLEnd="<\/textarea><input type=\"button\" value=\"运行代码\" onclick=\"UBB_runCode(this);\" class=\"UBB_html_button\" \/><\/div>";
var strCodeStart="<div class=\"UBB_code\">";
var strCodeEnd="<\/div>";
function init(){
txtContent=document.getElementById("txtContent");
divContent=document.getElementById("divContent");
viewButton01=document.getElementById("viewButton01");
viewButton02=document.getElementById("viewButton02");
dtfFrame=document.createElement("iframe");
dtfFrame.frameBorder="0px";
dtfFrame.style.width="0px";
dtfFrame.style.height="0px";
document.body.appendChild(dtfFrame);
dtf=window.frames[window.frames.length-1];
dtf.location.href="about:blank";
window.onresize=switchModel;
txtContent.onkeydown=chkKey;
switchModel(0);
}
function switchModel(id){
// 重新计算输入区域大小
txtContent.style.width=document.body.clientWidth-50+"px";
txtContent.style.height=document.body.clientHeight-50+"px";
divContent.style.width=document.body.clientWidth-50+"px";
divContent.style.height=document.body.clientHeight-50+"px";
if(id==0){ // 转到代码视图
divContent.style.display="none";
txtContent.style.display="block";
viewButton01.style.backgroundColor="navy";
viewButton01.style.color="white";
viewButton02.style.backgroundColor="";
viewButton02.style.color="";
txtContent.focus();
}else if(id==1){ // 转到预览视图
divContent.style.display="block";
txtContent.style.display="none";
divContent.innerHTML=UBB2HTML(txtContent.value);
viewButton02.style.backgroundColor="navy";
viewButton02.style.color="white";
viewButton01.style.backgroundColor="";
viewButton01.style.color="";
divContent.focus();
}
}
function HTML2UBB(strHTML){
var re=htmlDecode(strHTML);
re=re.replace(/<(\/?)strong>/ig,"[$1b]");
re=re.replace(/<(\/?)b>/ig,"[$1b]");
re=re.replace(/<(\/?)em>/ig,"[$1i]");
re=re.replace(/<(\/?)i>/ig,"[$1i]");
re=re.replace(/< *(\/?) *div[\w\W]*?>/ig,"\r\n");
re=re.replace(/< *img +[\w\W]*?src=["]?([^">\r\n]+)[\w\W]*?>/ig,"");
re=re.replace(/< *a +[\w\W]*?href=["]?([^">\r\n]+)[\w\W]*?>([\w\W]*?)< *\/ *a *>/ig,"$2");
re=re.replace(/<script[\w\W]+?<\/script>/ig,"");
re=re.replace(/<[\w\W]*?>/ig,"");
re=re.replace(/(\r\n){2,}/g,"\r\n");
return(re);
}
function UBB2HTML(strUBB){
var re=strUBB;
// 转换HTML实体
re=htmlEncode(re);
// 屏蔽 html 和 code 中的 UBB 转意符
re=re.replace(/(\[html\])([\w\W]*?)(\[\/html\])/ig,UBB2HTML_escapeUBB);
re=re.replace(/(\[code\])([\w\W]*?)(\[\/code\])/ig,UBB2HTML_escapeUBB);
// 转换UBB代码为HTML代码
re=re.replace(/\[b\]/ig,"<b>").replace(/\[\/b\]/ig,"<\/b>");
re=re.replace(/\[i\]/ig,"<i>").replace(/\[\/i\]/ig,"<\/i>");
re=re.replace(/\[code\]/ig,strCodeStart).replace(/\[\/code\]/ig,strCodeEnd);
re=re.replace(/\[html\]/ig,strHTMLStart).replace(/\[\/html\]/ig,strHTMLEnd);
re=re.replace(/\[size=(\d)\]/ig,UBB2HTML_fontSize).replace(/\[\/size\]/ig,"<\/span>");
re=re.replace(/\[img\]/ig,"<img src=\"").replace(/\[\/img\]/ig,"\" \/>");
re=re.replace(/\[url\]([\w\W]+?)\[\/url\]/ig,"<a href=\"$1\">$1<\/a>");
re=re.replace(/\[url=([^\]]+?)\]/ig,UBB2HTML_url).replace(/\[\/url\]/ig,"<\/a>");
// 还原 html 和 code 中的 UBB 转意符
re=re.replace(/\\\[/g,"[").replace(/\\\]/g,"]");
return(re);
}
function UBB2HTML_escapeUBB(strAll,strS1,strS2,strS3){
switch(strS1.toLowerCase()){
case "[html]":
return(strS1+htmlDecode(strS2.replace(/\[/g,"\\[").replace(/\]/g,"\\]"))+strS3);
break;
case "":
return(strS1+strS2.replace(/\[/g,"\\[").replace(/\]/g,"\\]")+strS3);
break;
}
}
function htmlEncode(strS){
return(strS.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/ /g," ").replace(/\r\n/g,"<br\/>"));
}
function htmlDecode(strS){
return(strS.replace(/<br\/?>/ig,"\r\n").replace(/ /ig," ").replace(/>/ig,">").replace(/</ig,"<").replace(/&/ig,"&"));
}
function UBB_runCode(obj){
theObj=obj;
while(theObj=theObj.previousSibling)if(String(theObj.tagName).toLowerCase()=="textarea"){
newWin=open();
newWin.document.open();
newWin.document.clear();
newWin.document.write(theObj.value);
newWin.document.close();
return(true);
}
}
function UBB2HTML_fontSize(str,i){
return("<span style=\"font-size:"+(7+i*4)+"px;\">");
}
function UBB2HTML_url(str,strURL){
return("<a href=\""+strURL+"\"\/>");
}
function chkKey(){
var eK=keyChar().toLowerCase();
switch(eK){
case "tab":
setUBB(eK);return(false);
break;
case "b": case "+": case "-":
if(event.ctrlKey){
setUBB(eK);return(false);
}
break;
case "c": case "h": case "i":
if(event.ctrlKey&&event.shiftKey){
setUBB(eK);return(false);
}
break;
case "v":
if(event.ctrlKey&&event.shiftKey){
chkPaste();return(false);
}else if(event.ctrlKey&&event.altKey){
chkPasteH();return(false);
}
break;
}
}
function chkPaste(){
txtContent.focus();
tR=document.selection.createRange();
dtf.document.body.innerHTML="";
dtf.document.body.contentEditable=true;
dtf.document.body.focus();
dtf.document.execCommand("paste");
tR.text=HTML2UBB(dtf.document.body.innerHTML);
tR.select();
}
function chkPasteH(){
txtContent.focus();
tR=document.selection.createRange();
dtf.document.body.innerHTML="";
dtf.document.body.contentEditable=true;
dtf.document.body.focus();
dtf.document.execCommand("paste");
tR.text=(dtf.document.body.innerHTML);
tR.select();
}
function setUBB(type){
var tR, strT, intSize;
var typeCodes=new Array();
switchModel(0);
txtContent.focus();
tR=document.selection.createRange();
strT=tR.text;
switch(type){
case "tab":
tR.text="\t";tR.collapse();tR.select();
break;
case "b":
if(strT.match(/^\[b\][\w\W]*?\[\/b\]$/i)){
tR.text=strT.substring(3,strT.length-4);
tR.moveStart("character",-len(strT)+7);
tR.select();
}else{
tR.text=""+strT+"";
if(strT==""){
tR.moveStart("character",-4);tR.collapse();
}else{
tR.moveStart("character",-len(strT)-7);
}
tR.select();
}
break;
case "i":
if(strT.match(/^\[i\][\w\W]*?\[\/i\]$/i)){
tR.text=strT.substring(3,strT.length-4);
tR.moveStart("character",-len(strT)+7);
tR.select();
}else{
tR.text=""+strT+"";
if(strT==""){
tR.moveStart("character",-4);tR.collapse();
}else{
tR.moveStart("character",-len(strT)-7);
}
tR.select();
}
break;
case "c":
if(strT.match(/^\[code\][\w\W]*?\[\/code\]$/i)){
tR.text=strT.substring(6,strT.length-7);
tR.moveStart("character",-len(strT)+13);
tR.select();
}else{
tR.text="
"+strT+"[\/code]"; if(strT==""){ tR.moveStart("character",-7);tR.collapse(); }else{ tR.moveStart("character",-len(strT)-13); } tR.select(); } break; case "h": if(strT.match(/^\[html\][\w\W]*?\[\/html\]$/i)){ tR.text=strT.substring(6,strT.length-7); tR.moveStart("character",-len(strT)+13); tR.select(); }else{ tR.text="[html]"+strT+"[\/html]"; if(strT==""){ tR.moveStart("character",-7);tR.collapse(); }else{ tR.moveStart("character",-len(strT)-13); } tR.select(); } break; case "+": if(strT.match(/^\[size=\d\][\w\W]*?\[\/size\]$/i)){ intSize=parseInt(strT.charAt(6))+1; if(intSize<10){ tR.text=strT.substring(0,6)+intSize+strT.substring(7); tR.moveStart("character",-len(strT)); }else{ tR.text=strT.substring(8,strT.length-7); tR.moveStart("character",-len(strT)+15); } tR.select(); }else{ tR.text="[size=1]"+strT+"[/size]"; if(strT==""){ tR.moveStart("character",-7);tR.collapse(); }else{ tR.moveStart("character",-len(strT)-15); } tR.select(); } break; case "-": if(strT.match(/^\[size=\d\][\w\W]*?\[\/size\]$/i)){ intSize=parseInt(strT.charAt(6))-1; if(intSize>0){ tR.text=strT.substring(0,6)+intSize+strT.substring(7); tR.moveStart("character",-len(strT)); }else{ tR.text=strT.substring(8,strT.length-7); tR.moveStart("character",-len(strT)+15); } tR.select(); }else{ tR.text="[size=9]"+strT+"[/size]"; if(strT==""){ tR.moveStart("character",-7);tR.collapse(); }else{ tR.moveStart("character",-len(strT)-15); } tR.select(); } break; } } function len(str){ return(str.replace(/\r\n/g,"\r").length); } function keyChar(){ if(event.shiftKey){ switch(event.keyCode.toString()){ case "96":return("0"); case "97":return("1"); case "98":return("2"); case "99":return("3"); case "100":return("4"); case "101":return("5"); case "102":return("6"); case "103":return("7"); case "104":return("8"); case "105":return("9"); case "111":return("/"); case "110":return("."); case "106":return("*"); case "109":return("-"); case "107":return("+"); case "144":return("numlock"); case "192":return("~"); case "49":return("!"); case "50":return("@"); case "51":return("#"); case "52":return("$"); case "53":return("%"); case "54":return("^"); case "55":return("&"); case "56":return("*"); case "57":return("("); case "48":return(")"); case "189":return("_"); case "187":return("+"); case "219":return("{"); case "221":return("}"); case "220":return("|"); case "20":return("caplock"); case "186":return(":"); case "222":return("\""); case "188":return("<"); case "190":return(">"); case "191":return("?"); case "8":return("backspace"); case "9":return("tab"); case "81":return("Q"); case "87":return("W"); case "69":return("E"); case "82":return("R"); case "84":return("T"); case "89":return("Y"); case "85":return("U"); case "73":return("I"); case "79":return("O"); case "80":return("P"); case "65":return("A"); case "83":return("S"); case "68":return("D"); case "70":return("F"); case "71":return("G"); case "72":return("H"); case "74":return("J"); case "75":return("K"); case "76":return("L"); case "16":return("shift"); case "90":return("Z"); case "88":return("X"); case "67":return("C"); case "86":return("V"); case "66":return("B"); case "78":return("N"); case "77":return("M"); case "17":return("ctrl"); case "91":return("win"); case "92":return("win"); case "18":return("alt"); case "32":return(" "); case "93":return("menu"); case "38":return("up"); case "40":return("down"); case "37":return("left"); case "39":return("right"); case "45":return("insert"); case "46":return("delete"); case "36":return("home"); case "35":return("end"); case "33":return("pageup"); case "34":return("pagedown"); case "34":return("printcreen"); case "145":return("scrolllock"); case "19":return("pause"); case "27":return("esc"); case "12":return("middle"); case "13":return("\r\n"); case "112":return("f1"); case "113":return("f2"); case "114":return("f3"); case "115":return("f4"); case "116":return("f5"); case "117":return("f6"); case "118":return("f7"); case "119":return("f8"); case "120":return("f9"); case "121":return("f10"); case "122":return("f11"); case "123":return("f12"); default:return("unknown"); } }else{ switch(event.keyCode.toString()){ case "96":return("0"); case "97":return("1"); case "98":return("2"); case "99":return("3"); case "100":return("4"); case "101":return("5"); case "102":return("6"); case "103":return("7"); case "104":return("8"); case "105":return("9"); case "111":return("/"); case "110":return("."); case "106":return("*"); case "109":return("-"); case "107":return("+"); case "144":return("numlock"); case "192":return("`"); case "49":return("1"); case "50":return("2"); case "51":return("3"); case "52":return("4"); case "53":return("5"); case "54":return("6"); case "55":return("7"); case "56":return("8"); case "57":return("9"); case "48":return("0"); case "189":return("-"); case "187":return("="); case "8":return("backspace"); case "9":return("tab"); case "81":return("q"); case "87":return("w"); case "69":return("e"); case "82":return("r"); case "84":return("t"); case "89":return("y"); case "85":return("u"); case "73":return("i"); case "79":return("o"); case "80":return("p"); case "219":return("["); case "221":return("]"); case "220":return("\\"); case "20":return("caplock"); case "65":return("a"); case "83":return("s"); case "68":return("d"); case "70":return("f"); case "71":return("g"); case "72":return("h"); case "74":return("j"); case "75":return("k"); case "76":return("l"); case "186":return(";"); case "222":return("'"); case "16":return("shift"); case "90":return("z"); case "88":return("x"); case "67":return("c"); case "86":return("v"); case "66":return("b"); case "78":return("n"); case "77":return("m"); case "188":return(","); case "190":return("."); case "191":return("/"); case "17":return("ctrl"); case "91":return("win"); case "92":return("win"); case "18":return("alt"); case "32":return(" "); case "93":return("menu"); case "38":return("up"); case "40":return("down"); case "37":return("left"); case "39":return("right"); case "45":return("insert"); case "46":return("delete"); case "36":return("home"); case "35":return("end"); case "33":return("pageup"); case "34":return("pagedown"); case "34":return("printcreen"); case "145":return("scrolllock"); case "19":return("pause"); case "27":return("esc"); case "12":return("middle"); case "13":return("\r\n"); case "112":return("f1"); case "113":return("f2"); case "114":return("f3"); case "115":return("f4"); case "116":return("f5"); case "117":return("f6"); case "118":return("f7"); case "119":return("f8"); case "120":return("f9"); case "121":return("f10"); case "122":return("f11"); case "123":return("f12"); default:return("unknown"); } } } </script> </head> <body onload="init();"> <div id="divMain"> <div id="divTools"> <label>视图模式:</label> <a href="javascript:void(switchModel(0));" id="viewButton01" >代码视图</a> <a href="javascript:void(switchModel(1));" id="viewButton02" >预览视图</a> <label> | 样式工具:</label> <a href="javascript:void(setUBB('b'))" title="ctrl + b">黑体</a> <a href="javascript:void(setUBB('i'))" title="ctrl + shift + i">斜体</a> <a href="javascript:void(setUBB('c'))" title="ctrl + shift + c">代码</a> <a href="javascript:void(setUBB('h'))" title="ctrl + shift + h">HTML 运行</a> <a href="javascript:void(setUBB('+'))" title="ctrl + +">字体 + </a> <a href="javascript:void(setUBB('-'))" title="ctrl + -">字体 - </a> <a href="javascript:void(chkPaste())" title="ctrl + shift + v">粘贴UBB</a> <a href="javascript:void(chkPasteH())" title="ctrl + alt + v">粘贴HTML</a> </div> <div id="divContent" contentEditable="false"> </div> <textarea id="txtContent"></textarea> </div> </body> </html> 详细出处参考:http://www.jb51.net/article/369.htm
发表评论
-
Javascript刷新页面的实例
2017-10-02 16:49 495Javascript刷新页面的实例 Javascript刷 ... -
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2017-12-29 17:25 439/* Cross-Browser XMLHtt ... -
漂亮的Slider效果类终于封装成功
2015-04-16 20:38 0<!DOCTYPE html PUBLIC &quo ... -
用简单的脚本实现一款漂亮的下拉菜单
2015-04-16 20:33 0<!DOCTYPE html PUBLIC &quo ... -
Javascript操纵Cookie实现购物车程序
2015-04-16 20:31 0/************************** ... -
推荐:右键菜单
2015-04-16 20:30 0<!-- +++++++++++++++++++++ ... -
拖动层效果
2015-04-16 20:28 581<!DOCTYPE html PUBLIC &q ... -
发个自己写的表格操作类(添加,删除,排序,上移,下移)
2015-04-16 20:26 448<html> <head> ... -
cloneNode实现表格增加删除效果
2015-04-16 20:23 676<%@ page contentType= ... -
支持IE和FF的div+css选项卡
2015-04-16 20:22 526<!DOCTYPE html PUBLIC &quo ... -
一个分页的js
2015-04-16 20:20 483<!-- * 用js分页显示ul/ol的列表 ... -
JavaScript实现拖拽网页内元素的方法
2015-04-15 22:30 536/** * 跨平台的事件监听函数 * @param ... -
让IE浏览器支持HTML5标准的方法
2014-01-11 08:30 1021让IE浏览器支持HTML5标准 ... -
Javascript上传图片
2014-01-11 08:25 2493<!DOCTYPE html PUBLIC &quo ... -
javascript ajax
2013-07-21 20:51 970<!DOCTYPE html PUBLIC &quo ... -
javascript表格和表单
2013-07-13 23:06 921<html> <head> & ... -
javascript事件
2013-07-07 20:53 937<!DOCTYPE html PUBLIC &quo ... -
javascript基础
2013-07-06 22:47 1106<!DOCTYPE html PUBLIC &quo ... -
Javascript 验证上传图片大小[客户端]
2012-11-17 13:36 1742需求分析: 在做上传 ... -
带Checkbox的列表框
2011-11-26 14:31 939<title>带Checkbox的列表框 ...
相关推荐
以下是一个简单的示例,演示如何使用`TextRange`和`Selection`对象在网页上查找并替换文本: ```html 文本替换示例 <p>This is an example text to demonstrate the usage of TextRange and Selection ...
以下是TextRange对象使用方法的详细介绍: 属性和方法: 1. boundingHeight: 此属性用于获取TextRange对象绑定矩形区域的高度。通过它可以确定文本范围在页面上所占的空间大小。 2. boundingLeft: 获取TextRange...
2. **TextRange对象的方法和属性**:TextRange对象提供了许多方法,如`select()`用于选择TextRange所涵盖的文本,`collapse()`用于收缩TextRange至起点或终点,`move()`用于移动TextRange的起点或终点,以及`text`...
例如,`GetCursorPsn()`函数演示了如何获取输入框或文本区域的光标位置。它利用`document.selection`创建一个范围,并通过`createRange()`获取选区,然后通过对范围的处理确定光标位置。然而,这种方法的一个副作用...
这个需求可以通过JavaScript实现,通过创建一个链接或按钮,当用户点击时,会自动将预设的UBB(UnderBar Basic)格式的软件信息复制到剪贴板。本文将详细讲解如何利用JavaScript编写这样的代码。 首先,我们需要在...
TextRange提供的调用方法却都比较晦涩,那么我们能拿它做些什么呢? TextRange的传统用途是对用户在Web页上用鼠标圈选的文字内容的操作,比如变化、删除、新增等。但其经典的用途却是,在Web页面中查找文字和获取...
- 支持常用的剪贴板操作,如`Cut()`, `Copy()`, `Paste()`,可以处理文本和图像。 - `CanExecute`和`Executed`命令可以自定义剪贴板操作的行为。 7. **保存和加载文档** - `Save()`方法可以将`FlowDocument`的...
- **TextRange**:如果选择的是文本,则返回这些文本的范围。 #### 八、其他重要对象 除了上述对象之外,还有许多其他重要的对象,例如: - **CommandBars**:包含所有命令栏对象的集合。 - **Windows**:包含...
复制操作会将TextBox选中的文本放到剪贴板上,而粘贴操作则从剪贴板中取出内容并插入到TextBox的当前位置。 此外,我们还可以增加其他高级功能,如查找和替换、字体样式设置等。这些功能需要对文本进行更复杂的操作...
创建幻灯片时,首先需要创建一个PowerPoint Application对象,然后通过这个对象来新建一个演示文稿(Presentation)。以下是一个简单的示例代码片段: ```cpp #import "C:\Program Files (x86)\Microsoft Office\...
- **字符串处理**:对高亮文本进行分析和处理,如查找关键词、翻译、复制到剪贴板等。 3. **游戏**: 虽然标签中提到了"游戏",但在这种情况下,可能是扩展应用于游戏网站,例如,帮助玩家快速复制游戏内的文本...
- **设置文本和内容**:通过`Slide.Shapes.TextFrame.TextRange.Text`属性,可以设置幻灯片中的文本内容。 - **插入图片**:利用`Slide.Shapes.AddPicture()`方法插入图片,指定图片的路径和是否链接到源文件。 -...
例如,复制和粘贴操作可以通过剪贴板(Clipboard)类来处理,查找和替换则可以通过TextRange或Find方法实现。 **3. 复制、粘贴、剪切** 这些基本操作是通过操作系统的剪贴板API完成的。在C#中,可以使用Clipboard类...
9. **自动化和脚本**:这种技术可以用于自动化创建、更新或合并大量PowerPoint演示文稿,例如批量生成报告或教学材料。 10. **性能优化**:处理大量幻灯片时,要注意内存管理和性能优化,例如批量处理而不是逐一...