- 浏览: 275382 次
- 性别:
- 来自: 福建
文章分类
- 全部博客 (98)
- jQuery (13)
- Ext (1)
- javascript (30)
- SSH项目 (5)
- webservice (1)
- struts2 (1)
- 其它 (7)
- hibernate (7)
- Oracle (19)
- 常用资料 (7)
- 全屏浏览器 (2)
- Linux (1)
- weblogic (3)
- java web打包安装程序 (1)
- 解决讨厌的Oracle死锁 (1)
- jxl 实现根据sql语句导出excel文件 (1)
- Java中使用的路径 (1)
- 存储过程锁问题 存储过程编译锁问题---解锁办法 (0)
- 存储过程锁问题、锁表问题 存储过程编译锁问题---解锁办法 (1)
- Oracle、导出序列 (1)
- java 抓取网页图片 (1)
最新评论
-
guoshuai_27:
...
24种页面切换效果详解 -
nucleus:
第一个例子少了sql demo1:统计某商店的营业额能补上去么 ...
超级牛皮的oracle的分析函数over(Partition by...) 及开窗函数 -
agan112:
xili
oracle数组例子 -
ye361571404:
谢谢了。。。。
weblogic92启动时的问题:Unmarshaller failed . -
bianxiaoxm:
感觉不错,值得学习!
js禁止页面刷新后退
<HTML><HEAD><TITLE>Format</TITLE> <META content="MSHTML 6.00.2800.1528" name=GENERATOR> <META content="" name=Author> <META content="" name=Keywords> <META content="" name=Description></HEAD> <BODY> <SCRIPT language=JavaScript> <!-- /**//**//**//** ** ================================================================================================== ** 类名:CLASS_FORMATER ** 功能:JS格式化 ** 示例: --------------------------------------------------------------------------------------------------- var xx = new CLASS_FORMATER(code); document.getElementById("display").innerHTML = xx.format(); --------------------------------------------------------------------------------------------------- ** 日期:2006-5-21 ** 版本:0.1 ** ================================================================================================== **/ function CLASS_FORMAT(code){ //哈希表类 function Hashtable(){ this._hash = new Object(); this.add = function(key,value){ if(typeof(key)!="undefined"){ if(this.contains(key)==false){ this._hash[key]=typeof(value)=="undefined"?null:value; return true; } else { return false; } } else { return false; } } this.remove = function(key){delete this._hash[key];} this.count = function(){var i=0;for(var k in this._hash){i++;} return i;} this.items = function(key){return this._hash[key];} this.contains = function(key){return typeof(this._hash[key])!="undefined";} this.clear = function(){for(var k in this._hash){delete this._hash[k];}} } this._caseSensitive = true; //字符串转换为哈希表 this.str2hashtable = function(key,cs){ var _key = key.split(/,/g); var _hash = new Hashtable(); var _cs = true; if(typeof(cs)=="undefined"||cs==null){ _cs = this._caseSensitive; } else { _cs = cs; } for(var i in _key){ if(_cs){ _hash.add(_key[i]); } else { _hash.add((_key[i]+"").toLowerCase()); } } return _hash; } //获得需要转换的代码 this._codetxt = code; if(typeof(syntax)=="undefined"){ syntax = ""; } this._deleteComment = false; //是否大小写敏感 this._caseSensitive = true; //可以后面加块语句的关键字 this._blockElement = this.str2hashtable("switch,if,while,try,finally"); //是函数申明 this._function = this.str2hashtable("function"); //本行括号内分号不做换行 this._isFor = "for"; this._choiceElement = this.str2hashtable("else,catch"); this._beginBlock = "{"; this._endBlock = "}"; this._singleEyeElement = this.str2hashtable("var,new,return,else,delete,in,case"); //得到分割字符 this._wordDelimiters= " ,.?!;:\\/<>(){}[]\"'\r\n\t=+-|*%@#$^&"; //引用字符 this._quotation = this.str2hashtable("\",'"); //行注释字符 this._lineComment = "//"; //转义字符 this._escape = "\\"; //多行引用开始 this._commentOn = "/*"; //多行引用结束 this._commentOff = "*/"; //行结束词 this._rowEnd = ";"; this._in = "in"; this.isCompress = false; this.style = 0; this._tabNum = 0; this.format = function() { var codeArr = new Array(); var word_index = 0; var htmlTxt = new Array(); if(this.isCompress){ this._deleteComment = true; } //得到分割字符数组(分词) for (var i = 0; i < this._codetxt.length; i++) { if (this._wordDelimiters.indexOf(this._codetxt.charAt(i)) == -1) { //找不到关键字 if (codeArr[word_index] == null || typeof(codeArr[word_index]) == 'undefined') { codeArr[word_index] = ""; } codeArr[word_index] += this._codetxt.charAt(i); } else { if (typeof(codeArr[word_index]) != 'undefined' && codeArr[word_index].length > 0) word_index++; codeArr[word_index++] = this._codetxt.charAt(i); } } var quote_opened = false; //引用标记 var slash_star_comment_opened = false; //多行注释标记 var slash_slash_comment_opened = false; //单行注释标记 var line_num = 1; //行号 var quote_char = ""; //引用标记类型 var function_opened = false; var bracket_open = false; var for_open = false; //按分割字,分块显示 for (var i=0; i <=word_index; i++){ //处理空行(由于转义带来) if(typeof(codeArr[i])=="undefined"||codeArr[i].length==0){ continue; } else if(codeArr[i]==" "||codeArr[i]=="\t"){ if(slash_slash_comment_opened||slash_star_comment_opened){ if(!this._deleteComment){ htmlTxt[htmlTxt.length] = codeArr[i]; } } if(quote_opened){ htmlTxt[htmlTxt.length] = codeArr[i]; } } else if(codeArr[i]=="\n"){ //处理换行 } else if (codeArr[i] == "\r"){ slash_slash_comment_opened = false; quote_opened = false; line_num++; if(!this.isCompress){ htmlTxt[htmlTxt.length] = "\r\n"+ this.getIdent(); } //处理function里的参数标记 } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&this.isFunction(codeArr[i])){ htmlTxt[htmlTxt.length] = codeArr[i] + " "; function_opened = true; } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]==this._isFor){ htmlTxt[htmlTxt.length] = codeArr[i]; for_open = true; } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]=="("){ bracket_open = true; htmlTxt[htmlTxt.length] = codeArr[i]; } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]==")"){ bracket_open = false; htmlTxt[htmlTxt.length] = codeArr[i]; } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]==this._rowEnd){ if(!this.isCompress){ if(!for_open){ if(i<word_index&&(codeArr[i+1]!="\r"&&codeArr[i+1]!="\n")){ htmlTxt[htmlTxt.length] = codeArr[i] + "\n" + this.getIdent(); }else{ htmlTxt[htmlTxt.length] = codeArr[i] + this.getIdent(); } }else{ htmlTxt[htmlTxt.length] = codeArr[i]; } }else{ htmlTxt[htmlTxt.length] = codeArr[i]; } } else if(!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]==this._beginBlock){ for_open = false; if(!this.isCompress){ switch(this.style){ case 0: this._tabNum++; htmlTxt[htmlTxt.length] = codeArr[i] + "\n" + this.getIdent(); break; case 1: htmlTxt[htmlTxt.length] = "\n" + this.getIdent(); this._tabNum++; htmlTxt[htmlTxt.length] = codeArr[i] + "\n"+ this.getIdent(); break; default: this._tabNum++; htmlTxt[htmlTxt.length] = codeArr[i]; break; } }else{ htmlTxt[htmlTxt.length] = codeArr[i]; } } else if(!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]==this._endBlock){ if(!this.isCompress){ this._tabNum--; if(i<word_index&&codeArr[i+1]!=this._rowEnd){ htmlTxt[htmlTxt.length] = "\n" + this.getIdent() + codeArr[i]; }else{ htmlTxt[htmlTxt.length] = "\n" + this.getIdent() + codeArr[i]; } }else{ if(i<word_index&&codeArr[i+1]!=this._rowEnd){ htmlTxt[htmlTxt.length] = codeArr[i] + this._rowEnd; }else{ htmlTxt[htmlTxt.length] = codeArr[i]; } } //处理关键字 } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened && this.isBlockElement(codeArr[i])){ htmlTxt[htmlTxt.length] = codeArr[i]; //处理内置对象(后面加一个空格) } else if (!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened && this.isSingleEyeElement(codeArr[i])){ if(codeArr[i]==this._in){ htmlTxt[htmlTxt.length] = " "; } htmlTxt[htmlTxt.length] = codeArr[i] + " "; //处理双引号(引号前不能为转义字符) } else if (!slash_star_comment_opened&&!slash_slash_comment_opened&&this._quotation.contains(codeArr[i])){ if (quote_opened){ //是相应的引号 if(quote_char==codeArr[i]){ htmlTxt[htmlTxt.length] = codeArr[i]; quote_opened = false; quote_char = ""; } else { htmlTxt[htmlTxt.length] = codeArr[i]; } } else { htmlTxt[htmlTxt.length] = codeArr[i]; quote_opened = true; quote_char = codeArr[i]; } //处理转义字符 } else if(codeArr[i] == this._escape){ htmlTxt[htmlTxt.length] = codeArr[i]; if(i<word_index-1){ if(codeArr[i+1].charCodeAt(0)>=32&&codeArr[i+1].charCodeAt(0)<=127){ htmlTxt[htmlTxt.length] = codeArr[i+1].substr(0,1); htmlTxt[htmlTxt.length] = codeArr[i+1].substr(1); i=i+1; } } //处理多行注释的开始 } else if (!slash_slash_comment_opened && !slash_star_comment_opened&&!quote_opened&&this.isStartWith(this._commentOn,codeArr,i)){ slash_star_comment_opened = true; if(!this._deleteComment){ htmlTxt[htmlTxt.length] = this._commentOn; } i = i + this.getSkipLength(this._commentOn); //处理单行注释 } else if (!slash_slash_comment_opened && !slash_star_comment_opened&&!quote_opened&&this.isStartWith(this._lineComment,codeArr,i)){ slash_slash_comment_opened = true; if(!this._deleteComment){ htmlTxt[htmlTxt.length] = this._lineComment; } i = i + this.getSkipLength(this._lineComment); //处理忽略词 } else if (!slash_slash_comment_opened && !slash_star_comment_opened&&!quote_opened&&this.isStartWith(this._ignore,codeArr,i)){ slash_slash_comment_opened = true; htmlTxt[htmlTxt.length] = this._ignore; i = i + this.getSkipLength(this._ignore); //处理多行注释结束 } else if (!quote_opened&&!slash_slash_comment_opened&&this.isStartWith(this._commentOff,codeArr,i)){ if (slash_star_comment_opened) { slash_star_comment_opened = false; if(!this._deleteComment){ htmlTxt[htmlTxt.length] = this._commentOff; } i = i + this.getSkipLength(this._commentOff); } } else { //不是在字符串中 if(!quote_opened){ //如果不是在注释重 if(!slash_slash_comment_opened && !slash_star_comment_opened){ htmlTxt[htmlTxt.length] = codeArr[i]; //注释中 }else{ if(!this._deleteComment){ htmlTxt[htmlTxt.length] = codeArr[i]; } } }else{ htmlTxt[htmlTxt.length] = codeArr[i]; } } } return htmlTxt.join(""); } this.isStartWith = function(str,code,index){ if(typeof(str)!="undefined"&&str.length>0){ var cc = new Array(); for(var i=index;i<index+str.length;i++){ cc[cc.length] = code[i]; } var c = cc.join(""); if(this._caseSensitive){ if(str.length>=code[index].length&&c.indexOf(str)==0){ return true; } }else{ if(str.length>=code[index].length&&c.toLowerCase().indexOf(str.toLowerCase())==0){ return true; } } return false; } else { return false; } } this.isFunction = function(val){ return this._function.contains(this._caseSensitive?val:val.toLowerCase()); } this.isBlockElement = function(val) { return this._blockElement.contains(this._caseSensitive?val:val.toLowerCase()); } this.isChoiceElement = function(val) { return this._choiceElement.contains(this._caseSensitive?val:val.toLowerCase()); } this.isSingleEyeElement = function(val) { return this._singleEyeElement.contains(this._caseSensitive?val:val.toLowerCase()); } this.isNextElement = function(from,word){ for(var i=from;i<word.length;i++){ if(word[i]!=" "&&word[i]!="\t"&&word[i]!="\r"&&word[i]!="\n"){ return this.isChoiceElement(word[i]); } } return false; } this.getSkipLength = function(val){ var count = 0; for(var i=0;i<val.length;i++){ if(this._wordDelimiters.indexOf(val.charAt(i))>=0){ count++; } } if(count>0){ count=count-1; } return count; } this.getIdent=function(){ var n = []; for(var i=0;i<this._tabNum;i++){ n[n.length] = "\t"; } return n.join(""); } } function doformat(o){ var htmltxt = ""; if (o == null){ alert("domNode is null!"); return; } var _codetxt = ""; if(typeof(o)=="object"){ switch(o.tagName){ case "TEXTAREA": case "INPUT": _codetxt = o.value; break; case "DIV": case "SPAN": _codetxt = o.innerText; break; default: _codetxt = o.innerHTML; break; } }else{ _codetxt = o; } var _syn = new CLASS_FORMAT(_codetxt); htmltxt = _syn.format(); return htmltxt; } function go() { var code = document.getElementById("code").value; var xx = new CLASS_FORMAT(code); var a = new Date(); if(document.getElementById('cboOperate').selectedIndex==1){ xx.isCompress=true; }else{ xx.style = parseInt(document.getElementById('cboStyle').value); } document.getElementById("display").value = xx.format(); alert("共花:" + (new Date().getTime()-a.getTime()) + "ms"); } //--> </SCRIPT> <TEXTAREA id=code rows=12 cols=100> /* 这个是一个类 */ function xx (num,str){//说明 var a = num;this.aa = a; this.bb = function(){alert(str);} this.cc = function(){for(var i=0;i<10;i++){document.title=i;}}}; xx.prototype.dd= function(){alert("d d kd");} var a = new xx(100,"hello"),b=new xx(0,"ttyp"); if(1>2) { alert(); } else { alert(" hell "); } a.bb(); b.dd(); alert(a.aa); </TEXTAREA> <BR> <select id="cboOperate" onchange="if(this.selectedIndex==1)document.getElementById('cboStyle').disabled=true;else document.getElementById('cboStyle').disabled=false;"> <option value="0">格式化</option> <option value="1">压缩</option> </select> <select id="cboStyle"> <option value="0">经典</option> <option value="1">微软</option> </select> <INPUT onclick=go() type=button value=go><br> <textarea id=display rows=12 cols=100> </textarea> </BODY></HTML>
发表评论
-
基于easyui的桌面app
2012-11-24 09:37 2500基于easyui的桌面app,支持 ... -
基于easyui的桌面app
2012-11-24 09:29 4936基于easyui的桌面app,支持更换桌面,更换图标大小 ... -
关于纯数字的字符串按ASCII压缩
2011-08-18 10:01 3852<!DOCTYPE HTML PUBLIC &qu ... -
js 对象排序
2011-08-04 19:53 1870<!DOCTYPE HTML PUBLIC " ... -
实现表单回车功能呢
2011-06-25 11:30 1059<!DOCTYPE HTML PUBLIC " ... -
f_alert 在指定元素后面弹出错误信息
2011-06-11 15:24 2109<!DOCTYPE HTML PUBLIC &qu ... -
js 实现HashMap
2011-05-01 16:25 1162/** * 定义HashMap ... -
js 实现StringBuffer
2011-05-01 16:23 2060function StringBuffer(){ ... -
JS 获取当前屏幕大小
2011-01-13 10:31 1351网页可见区域宽:document.body.clientWid ... -
3D照片墙
2010-04-21 10:59 18593D照片墙 flash+XML -
js判断上传文件大小
2010-04-20 22:16 1150<!DOCTYPE HTML PUBLIC " ... -
JS打造立体旋转的图片特效
2010-04-01 14:24 2385<html> <head> < ... -
jsp+js实现可排序表格
2009-12-09 20:11 2049首先,定义一个js: /** * 排序主方法 * ... -
改善用户体验的alert提示效果
2009-11-21 09:59 955<input type="button&quo ... -
js禁止页面刷新后退
2009-11-19 16:33 12605<script language=" ... -
JS实现间歇无缝文字滚动
2009-11-17 11:39 1755<!DOCTYPE HTML PUBLIC " ... -
js图片滚动效果
2009-11-17 11:27 2696<script> window.onload= ... -
js编写在网页中运行代码效果
2009-11-17 10:11 1457<!DOCTYPE html PUBLIC " ... -
js代码超酷3D效果
2009-11-17 10:04 1406<!DOCTYPE HTML PUBLIC " ... -
24种页面切换效果详解
2009-11-14 14:08 891324种页面切换效果详解 使用格式: <meta ht ...
相关推荐
本文将详细介绍如何使用JS格式化排版工具来对压缩的JS编码进行反向处理,使其恢复成可读性较高的格式。 首先,了解JS压缩的基本原理。JS压缩工具如UglifyJS、Terser或Closure Compiler等,通过删除不必要的空白、...
注意:需要转换的js文件里面不能有注释,有的话,它转换不了。 在网上下载一些js文件,但是打开后,就像一段话一样,好长,好长,没有任何格式,想看一下就不成。
"js格式化工具"就是为此目的而设计的软件或在线服务,它可以帮助开发者快速整理杂乱无章的JS代码,使其符合特定的编码规范。 这些工具通常具备以下功能: 1. **代码美化**:自动将混乱的代码按照标准的缩进、换行...
html实现js格式化,整理JS代码,规整
"JS格式化工具"就是专门为此目的设计的软件或在线服务,它们能够自动将杂乱无章的JS代码整理成符合编码风格的格式。 这些工具的主要功能包括: 1. **语法高亮显示**:通过不同的颜色和样式突出显示代码中的关键...
JavaScript Code Improver(JS代码改进器)是一款专为JavaScript开发者设计的工具,旨在帮助程序员优化、格式化和改进他们的源代码。这款工具以其绿色免安装的特性,方便用户快速使用,无需复杂的安装过程,只需解压...
JS格式化工具的主要功能是将复杂的、未格式化的JavaScript代码整理成清晰、标准的格式。它通过自动添加缩进、换行、括号对齐等方式,使得代码结构更易于人眼识别,从而提高开发者的阅读效率和代码质量。这对于团队...
js格式化json工具。把json字符串格式化成更好辨认的格式。
是不是还在为怎么格式化js而烦恼?是不是还要用第三方工具格式化js? DW javascript格式化插件帮你解决这些问题。
总结来说,JSEnhancements是一款专为VS2010设计的JavaScript格式化插件,旨在提高开发者的工作效率和代码质量。通过其强大的代码格式化、折叠和智能提示功能,开发者可以更专注于代码逻辑,而非琐碎的格式调整,从而...
myeclipse js格式化
js 语言的格式化日期格式的类。很好用的。
"JS格式化工具"就是为了帮助开发者整理混乱的JS代码,使其符合特定的编码风格而设计的。 "JS格式化工具"通常具备以下功能: 1. **自动缩进**:工具可以自动调整代码的缩进,确保每个级别的嵌套都有正确的空格或...
根据提供的文件信息,本文将详细介绍JavaScript中五种常用的数字格式化方法:`CurrencyFormatted`、`format_number`、`CommaFormatted`、`addCommas` 和 `number_format`。这些函数可以帮助开发者更加灵活地处理和...
JS代码格式化工具通常是一个HTML页面,它包含了能够接收用户输入的混乱JavaScript代码,然后自动进行格式化,使其符合一定的编码风格,如缩进、换行和括号对齐等。这种工具通常基于开源的代码格式化库,如Prettier或...
"jb51.net 脚本之家.htm"和"JSer javascript格式化 jb51.net 脚本之家_files"可能是指一个在线的JS格式化服务或教程,源自“脚本之家”这个网站。这个网站可能提供了关于如何使用JS格式化工具的指南,包括但不限于...
【压缩包子文件的文件名称列表】:einars-js-beautify-be3b412可能是这个JavaScript格式化工具的特定版本或者源代码包。"einars-js-beautify"很可能是一个名为Einar's JS Beautify的工具,这是一款广泛使用的...
js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化js日期时间格式化