\u0100故障码怎么维修-\u2700代表什么样的字符

博客访问: 317740
博文数量: 68
博客积分: 1867
博客等级: 上尉
技术积分: 632
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 系统运维
& 众所周知页面上的字符内容通常都需要进行HTML转义才能正确显示,尤其对于Input,Textarea提交的内容,更是要进行转义以防止javascript注入攻击。& 通常的HTML转义主要是针对内容中的"","&",以及空格、单双引号等。但其实还有很多字符也需要进行转义。具体的可以参考。** 1、HTML转义& 参考上面的提到的文章,基本上可以确定以下的转义的范围和方式。& 1)对"\""、"&"、"'"、""、空格(0x20)、0x00到0x20、0x7F-0xFF& 以及0x0的字符进行转义,基本上就覆盖的比较全面了。&&& &用javascript的正则表达式可以写为:& &this.REGX_HTML_ENCODE = /"|&|'||[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;&& 2)为保证转义结果对浏览器的无差别,转义编码为实体编号,而不用实体名称。&&& 3)空格(0x20)通常转义为“&”也就是“ ”。& 转义的代码非常简单:&&this.encodeHtml = function(s){
&&&&&&return (typeof s != "string") ? s&:
&&&&&&&&&&s.replace(this.REGX_HTML_ENCODE,
&&&&&&&&&&&&&&&&&&&&function($0){
&&&&&&&&&&&&&&&&&&&&&&&&var c = $0.charCodeAt(0), r = ["&#"];
&&&&&&&&&&&&&&&&&&&&&&&&c = (c == 0x20) ? 0xA0 : c;
&&&&&&&&&&&&&&&&&&&&&&&&r.push(c); r.push(";");
&&&&&&&&&&&&&&&&&&&&&&&&return r.join("");
&&&&&&&&&&&&&&&&&&&&});
&&};** 2、反转义& 既然有转义,自然需要反转义。& 1) 对“&#”实体编号的转义,直接提取编号然后fromCharCode就可以得到字符。& 2) 对于诸如“&”,需要建立一张如下的表来查询。& &this.HTML_DECODE = {& & & & "&" &: "<",&& & & & "&" &: ">",&& & & & "&" : "&",&& & & & "&": " ",&& & & & "&": "\"",&& & & & "&": "&#169;"& & & & // Add more& &};& 由此我们可以有反转义的正则表达式:& this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;& 反转的代码也很简单,如下:this.decodeHtml = function(s){
&&&&&&return (typeof s != "string") ? s :
&&&&&&&&&&s.replace(this.REGX_HTML_DECODE,
&&&&&&&&&&&&&&&&&&&&function($0,$1){
&&&&&&&&&&&&&&&&&&&&&&&&var c = this.HTML_ENCODE[$0]; // 尝试查表
&&&&&&&&&&&&&&&&&&&&&&&&if(c === undefined){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&// Maybe is Entity Number
&&&&&&&&&&&&&&&&&&&&&&&&&&&&if(!isNaN($1)){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c = String.fromCharCode(($1 == 160) ? 32 : $1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}else{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&// Not Entity Number
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c = $0;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&return c;
&&&&&&&&&&&&&&&&&&&&});
&&};** 3、一个有意思的认识& 其实在用正则表达式转义之前,我一直都是用遍历整个字符串,逐个比较字符的方式。直到有一天,看到一篇文章说,javascript正则表达式是C实现的,比自己用javascript遍历字符要快,于是我就试着改写成上面这种方式。虽然代码看起来的确显得神秘而又牛叉,但遗憾的是,在我的Chrome 11 (FreeBSD 64 9.0)上,遍历字符转义/反转的方式要比上面正则表达式的代码快2到3倍(字符串长度越长越明显)。其实,想想也能明白为什么。** 4、完整版本的代码$package("js.lang"); // 没有包管理时,也可简单写成 js = {lang:{}};
js.lang.String = function(){
&&&&this.REGX_HTML_ENCODE = /"|&|'||[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
&&&&this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
&&&&this.REGX_TRIM = /(^\s*)|(\s*$)/g;
&&&&this.HTML_DECODE = {
&&&&&&&&"&lt;"
&&&&&&&&"&gt;"
&&&&&&&&"&amp;" : "&",
&&&&&&&&" ": " ",
&&&&&&&&"&quot;": "\"",
&&&&&&&&"&": ""
&&&&&&&&// Add more
&&&&this.encodeHtml = function(s){
&&&&&&&&s = (s != undefined) ? s : this.toString();
&&&&&&&&return (typeof s != "string") ? s :
&&&&&&&&&&&&s.replace(this.REGX_HTML_ENCODE,
&&&&&&&&&&&&&&&&&&&&&&function($0){
&&&&&&&&&&&&&&&&&&&&&&&&&&var c = $0.charCodeAt(0), r = ["&#"];
&&&&&&&&&&&&&&&&&&&&&&&&&&c = (c == 0x20) ? 0xA0 : c;
&&&&&&&&&&&&&&&&&&&&&&&&&&r.push(c); r.push(";");
&&&&&&&&&&&&&&&&&&&&&&&&&&return r.join("");
&&&&&&&&&&&&&&&&&&&&&&});
&&&&this.decodeHtml = function(s){
&&&&&&&&var HTML_DECODE = this.HTML_DECODE;
&&&&&&&&s = (s != undefined) ? s : this.toString();
&&&&&&&&return (typeof s != "string") ? s :
&&&&&&&&&&&&s.replace(this.REGX_HTML_DECODE,
&&&&&&&&&&&&&&&&&&&&&&function($0, $1){
&&&&&&&&&&&&&&&&&&&&&&&&&&var c = HTML_DECODE[$0];
&&&&&&&&&&&&&&&&&&&&&&&&&&if(c == undefined){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&// Maybe is Entity Number
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if(!isNaN($1)){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c = String.fromCharCode(($1 == 160) ? 32:$1);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}else{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c = $0;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&return c;
&&&&&&&&&&&&&&&&&&&&&&});
&&&&this.trim = function(s){
&&&&&&&&s = (s != undefined) ? s : this.toString();
&&&&&&&&return (typeof s != "string") ? s :
&&&&&&&&&&&&s.replace(this.REGX_TRIM, "");
&&&&this.hashCode = function(){
&&&&&&&&var hash = this.__hash__, _char;
&&&&&&&&if(hash == undefined || hash == 0){
&&&&&&&&&&&&hash = 0;
&&&&&&&&&&&&for (var i = 0, len=this.length; i < len; i++) {
&&&&&&&&&&&&&&&&_char = this.charCodeAt(i);
&&&&&&&&&&&&&&&&hash = 31*hash + _char;
&&&&&&&&&&&&&&&&hash = hash & hash; // Convert to 32bit integer
&&&&&&&&&&&&}
&&&&&&&&&&&&hash = hash & 0x7fffffff;
&&&&&&&&this.__hash__ = hash;
&&&&&&&&return this.__hash__;
js.lang.String.call(js.lang.String);& &在实际的使用中可以有两种方式:& 1)使用js.lang.String.encodeHtml(s)和js.lang.String.decodeHtml(s)。& 2)还可以直接扩展String的prototype& &js.lang.String.call(String.prototype);
&&var str = "&'\"中国abc
&&var ec_str = str.encodeHtml();
&&document.write(ec_str);
&&document.write(""); // CU的博客在线编辑有bug,放不上来!!!
&&var dc_str = ec_str.decodeHtml();
&&document.write(dc_str);
阅读(38457) | 评论(2) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
实际使用的时候,发现这个&decodeHtml&需要写很长的转移字符对应列表&this.HTML_DECODE这里有个简单的&decodeHtml&方法:this.decodeHtml&=&function(s){&&&&var&d&=&document.cr&#101;ateElement('div');&&&&d.innerHTML&=&s;&&&&return&d.innerT}
转义编码为实体编号,而不用实体名称
请登录后评论。& Javascript怎样进行HTML转义
Javascript怎样进行HTML转义
& & & &众所周知页面上的字符内容通常都需要进行转义才能正确显示,尤其对于Input,Textarea提交的内容,更是要进行转义以防止注入攻击。  通常的HTML转义主要是针对内容中的&&&,&&&,&&&,以及空格、单双引号等。但其实还有很多字符也需要进行转义。具体的可以参考这篇文章。  1、HTML转义  参考上面的提到的文章,基本上可以确定以下的转义的范围和方式。  1)对&\&&、&&&、&'&、&&&、&&&、空格(0x20)、0x00到0x20、0x7F-0xFF  以及0x0的字符进行转义,基本上就覆盖的比较全面了。  用javascript的正则表达式可以写为:  this.REGX_HTML_ENCODE = /&|&|'|&|&|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;  2)为保证转义结果对浏览器的无差别,转义编码为实体编号,而不用实体名称。  3)空格(0x20)通常转义为&&&也就是&&#160;&。  转义的代码非常简单:
this.encodeHtml&=&function(s){&&
&&&&&&return&(typeof&s&!=&&string&)&?&s&:&&
&&&&&&&&&&s.replace(this.REGX_HTML_ENCODE,&&
&&&&&&&&&&&&&&&&&&&&function($0){&&
&&&&&&&&&&&&&&&&&&&&&&&&var&c&=&$0.charCodeAt(0),&r&=&[&&#&];&&
&&&&&&&&&&&&&&&&&&&&&&&&c&=&(c&==&0x20)&?&0xA0&:&c;&&
&&&&&&&&&&&&&&&&&&&&&&&&r.push(c);&r.push(&;&);&&
&&&&&&&&&&&&&&&&&&&&&&&&return&r.join(&&);&&
&&&&&&&&&&&&&&&&&&&&});&&
&&};&&  2、反转义  既然有转义,自然需要反转义。  1) 对&&#&实体编号的转义,直接提取编号然后fromCharCode就可以得到字符。  2) 对于诸如&&&,需要建立一张如下的表来查询。
this.HTML_DECODE&=&{&&
  &&&&&:&&&&,&&
  &&&&&:&&&&,&&
  &&&&:&&&&,&&
  &&&:&&&&,&&
  &&&:&&\&&,&&
  &&&:&&?&&&
  };&&  由此我们可以有反转义的正则表达式:  this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;  反转的代码也很简单,如下:
this.decodeHtml&=&function(s){&&
&&&&&&return&(typeof&s&!=&&string&)&?&s&:&&
&&&&&&&&&&s.replace(this.REGX_HTML_DECODE,&&
&&&&&&&&&&&&&&&&&&&&function($0,$1){&&
&&&&&&&&&&&&&&&&&&&&&&&&var&c&=&this.HTML_ENCODE[$0];&&&
&&&&&&&&&&&&&&&&&&&&&&&&if(c&===&undefined){&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&if(!isNaN($1)){&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c&=&String.fromCharCode(($1&==&160)&?&32&:&$1);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}else{&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c&=&$0;&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&&&&&return&c;&&
&&&&&&&&&&&&&&&&&&&&});&&
&&};&&  3、一个有意思的认识  其实在用正则表达式转义之前,我一直都是用遍历整个字符串,逐个比较字符的方式。直到有一天,看到一篇文章说,javascript正则表达式是实现的,比自己用javascript遍历字符要快,于是我就试着改写成上面这种方式。虽然代码看起来的确显得神秘而又牛叉,但遗憾的是,在我的Chrome 11 (FreeBSD 64 9.0)上,遍历字符转义/反转的方式要比上面正则表达式的代码快2到3倍(字符串长度越长越明显)。其实,想想也能明白为什么。  4、完整版本的代码
$package(&js.lang&);&&&
js.lang.String&=&function(){&&&&
&&&&this.REGX_HTML_ENCODE&=&/&|&|'|&|&|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;&&
&&&&this.REGX_HTML_DECODE&=&/&\w+;|&#(\d+);/g;&&
&&&&this.REGX_TRIM&=&/(^\s*)|(\s*$)/g;&&
&&&&this.HTML_DECODE&=&{&
&&&&&&&&&&&&:&&&&,&&
&&&&&&&&&&&&:&&&&,&&
&&&&&&&&&&&&:&&&&,&&
&&&&&&&&&&&:&&&&,&&
&&&&&&&&&&&:&&\&&,&&&
&&&&&&&&&&&:&&&&&
&&&&&&&&&&
&&&&this.encodeHtml&=&function(s){&&
&&&&&&&&s&=&(s&!=&undefined)&?&s&:&this.toString();&&
&&&&&&&&return&(typeof&s&!=&&string&)&?&s&:&&
&&&&&&&&&&&&s.replace(this.REGX_HTML_ENCODE,&&&
&&&&&&&&&&&&&&&&&&&&&&function($0){&&
&&&&&&&&&&&&&&&&&&&&&&&&&&var&c&=&$0.charCodeAt(0),&r&=&[&&#&];&&
&&&&&&&&&&&&&&&&&&&&&&&&&&c&=&(c&==&0x20)&?&0xA0&:&c;&&
&&&&&&&&&&&&&&&&&&&&&&&&&&r.push(c);&r.push(&;&);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&return&r.join(&&);&&
&&&&&&&&&&&&&&&&&&&&&&});&&
&&&&this.decodeHtml&=&function(s){&&
&&&&&&&&var&HTML_DECODE&=&this.HTML_DECODE;&&
&&&&&&&&s&=&(s&!=&undefined)&?&s&:&this.toString();&&
&&&&&&&&return&(typeof&s&!=&&string&)&?&s&:&&
&&&&&&&&&&&&s.replace(this.REGX_HTML_DECODE,&&
&&&&&&&&&&&&&&&&&&&&&&function($0,&$1){&&
&&&&&&&&&&&&&&&&&&&&&&&&&&var&c&=&HTML_DECODE[$0];&&
&&&&&&&&&&&&&&&&&&&&&&&&&&if(c&==&undefined){&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if(!isNaN($1)){&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c&=&String.fromCharCode(($1&==&160)&?&32:$1);&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}else{&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&c&=&$0;&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&&&&&&&}&&
&&&&&&&&&&&&&&&&&&&&&&&&&&return&c;&&
&&&&&&&&&&&&&&&&&&&&&&});&&
&&&&this.trim&=&function(s){&&
&&&&&&&&s&=&(s&!=&undefined)&?&s&:&this.toString();&&
&&&&&&&&return&(typeof&s&!=&&string&)&?&s&:&&
&&&&&&&&&&&&s.replace(this.REGX_TRIM,&&&);&&
&&&&this.hashCode&=&function(){&&
&&&&&&&&var&hash&=&this.__hash__,&_&&
&&&&&&&&if(hash&==&undefined&||&hash&==&0){&&
&&&&&&&&&&&&hash&=&0;&&
&&&&&&&&&&&&for&(var&i&=&0,&len=this.&i&&&&i++)&{&&
&&&&&&&&&&&&&&&&_char&=&this.charCodeAt(i);&&
&&&&&&&&&&&&&&&&hash&=&31*hash&+&_&&
&&&&&&&&&&&&&&&&hash&=&hash&&&&&&
&&&&&&&&&&&&}&&
&&&&&&&&&&&&hash&=&hash&&&0x7&&
&&&&&&&&}&&
&&&&&&&&this.__hash__&=&&&
&&&&&&&&return&this.__hash__;&&&
js.lang.String.call(js.lang.String);&&  在实际的使用中可以有两种方式:  1)使用js.lang.String.encodeHtml(s)和js.lang.String.decodeHtml(s)。  2)还可以直接扩展String的prototype
js.lang.String.call(String.prototype);&&&&
&&var&str&=&&&B&&'\&中国&/B&abc&def&;&&&&
&&var&ec_str&=&str.encodeHtml();&&
&&document.write(ec_str);&&&&&&
&&document.write(&&bt&&bt&&);&&
&&var&dc_str&=&ec_str.decodeHtml();&&&&
&&document.write(dc_str);&&
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 11:42:30)&&( 15:54:36)&&( 13:41:11)
感谢博主分享啊1
完全随机文章用Javascript进行HTML转义 - J$VM - ITeye技术网站
博客分类:
众所周知页面上的字符内容通常都需要进行HTML转义才能正确显示,尤其对于Input,Textarea提交的内容,更是要进行转义以防止javascript注入攻击。
通常的HTML转义主要是针对内容中的"&","&","&",以及空格、单双引号等。但其实还有很多字符也需要进行转义。具体的可以参考。
** 1、HTML转义
参考上面的提到的文章,基本上可以确定以下的转义的范围和方式。
1)对"\""、"&"、"'"、"&"、"&"、空格(0x20)、0x00到0x20、0x7F-0xFF
以及0x0的字符进行转义,基本上就覆盖的比较全面了。
用javascript的正则表达式可以写为:
this.REGX_HTML_ENCODE = /"|&|'|&|&|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
2)为保证转义结果对浏览器的无差别,转义编码为实体编号,而不用实体名称。
3)空格(0x20)通常转义为“&”也就是“&#160;”。
转义的代码非常简单:
this.encodeHtml = function(s){
return (typeof s != "string") ? s :
s.replace(this.REGX_HTML_ENCODE,
function($0){
var c = $0.charCodeAt(0), r = ["&#"];
c = (c == 0x20) ? 0xA0 :
r.push(c); r.push(";");
return r.join("");
** 2、反转义
既然有转义,自然需要反转义。
1) 对“&#”实体编号的转义,直接提取编号然后fromCharCode就可以得到字符。
2) 对于诸如“&”,需要建立一张如下的表来查询。
this.HTML_DECODE = {
"&" : "&",
"&": "\"",
"&": "(C)"
// Add more
由此我们可以有反转义的正则表达式:
this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
反转的代码也很简单,如下:
this.decodeHtml = function(s){
return (typeof s != "string") ? s :
s.replace(this.REGX_HTML_DECODE,
function($0,$1){
var c = this.HTML_ENCODE[$0]; // 尝试查表
if(c === undefined){
// Maybe is Entity Number
if(!isNaN($1)){
c = String.fromCharCode(($1 == 160) ? 32:$1);
// Not Entity Number
** 3、一个有意思的认识
其实在用正则表达式转义之前,我一直都是用遍历整个字符串,逐个比较字符的方式。直到有一天,看到一篇文章说,javascript正则表达式是C实现的,比自己用javascript遍历字符要快,于是我就试着改写成上面这种方式。虽然代码看起来的确显得神秘而又牛叉,但遗憾的是,在我的Chrome 11 (FreeBSD 64 9.0)上,遍历字符转义/反转的方式要比上面正则表达式的代码快2到3倍(字符串长度越长越明显)。其实,想想也能明白为什么。
** 4、完整版本的代码
$package("js.lang"); // 没有包管理时,也可简单写成 js = {lang:{}};
js.lang.String = function(){
this.REGX_HTML_ENCODE = /"|&|'|&|&|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
this.REGX_TRIM = /(^\s*)|(\s*$)/g;
this.HTML_DECODE = {
"&" : "&",
"&" : "&",
"&" : "&",
"&": "\"",
// Add more
this.encodeHtml = function(s){
s = (s != undefined) ? s : this.toString();
return (typeof s != "string") ? s :
s.replace(this.REGX_HTML_ENCODE,
function($0){
var c = $0.charCodeAt(0), r = ["&#"];
c = (c == 0x20) ? 0xA0 :
r.push(c); r.push(";");
return r.join("");
this.decodeHtml = function(s){
var HTML_DECODE = this.HTML_DECODE;
s = (s != undefined) ? s : this.toString();
return (typeof s != "string") ? s :
s.replace(this.REGX_HTML_DECODE,
function($0,$1){
var c = HTML_DECODE[$0];
if(c == undefined){
// Maybe is Entity Number
if(!isNaN($1)){
c = String.fromCharCode(($1==160)?32:$1);
this.trim = function(s){
s = (s != undefined) ? s : this.toString();
return (typeof s != "string") ? s :
s.replace(this.REGX_TRIM, "");
this.hashCode = function(){
var hash = this.__hash__, _
if(hash == undefined || hash == 0){
for (var i = 0, len=this. i & i++) {
_char = this.charCodeAt(i);
hash = 31*hash + _
hash = hash & // Convert to 32bit integer
hash = hash & 0x7
this.__hash__ =
return this.__hash__;
js.lang.String.call(js.lang.String);
在实际的使用中可以有两种方式:
1)使用js.lang.String.encodeHtml(s)和js.lang.String.decodeHtml(s)。
2)还可以直接扩展String的prototype
js.lang.String.call(String.prototype);
var str = "&B&&'\"中国&/B&abc def";
var ec_str = str.encodeHtml();
document.write(ec_str);
document.write("&br&&br&");
var dc_str = ec_str.decodeHtml();
document.write(dc_str);
浏览: 12339 次
挺不错的,设计很精巧!
&div class=&quote_title ...
好复杂啊,当然功能可能更丰富,但是真心没勇气看下去。
是我的一个开源框架。在这里你可以看一下项目入口:https:/ ...
$package(&js.text&);如何在博客园的文章/随笔中添加可运行的js代码 - 吕大豹 - 推酷
如何在博客园的文章/随笔中添加可运行的js代码 - 吕大豹
在博客园浏览大牛们写的文章时,经常会看到在文章中混有一些可运行示例,例如
& & & &带有可运行示例 &
& & & 可以点击“运行代码”
经过一番小小的探索,掌握了这种写博技巧,希望大家也借鉴大牛们的写法,让我们的博客更有表现力~开始~
一、博客中带有可运行javascript示例
很显然,作者是写了js代码在文章里面了,方法也比较简单,进入后台编辑器的源码编辑模式,在里面直接敲&script&标签,把代码放进去就可以了。同理,也可以敲&style&标签写css代码。保存后,看你的文章,已经可以有“功能”了。我之前也以为这样就OK了,挺方便的嘛!谁知过几天后再访问,发现js失效了!F12查看我的代码,&script&没有了!肯定是博客园进行过滤了。进入后台再更新一下源码,发现又可以生效了,但是过几天后就又失效了。带着疑惑我给博客园技术团队发了封邮件询问,谁知结果非常简单,请看截图:
真晕!所以结论是:要想在文章中使用js代码,请先联系管理员开通权限。
二、点击“运行代码”,在新页面运行文本框中的代码
这个就稍微有点技术含量了。我之前一直以为是博客园有什么插件提供,后来发现压根没有,这个功能得自己用代码写。基本步骤是这样的:
①写好HTML代码
②转义,放在textarea中
③点击“运行代码”,创建新窗口。var win = window.open();
④获取textarea中的代码,反转义,放到win中。win.document.write(html);
这样就可以在新窗口中运行你的代码了。这中间需要转义和反转义HTML代码,相关的函数如下:
var REGX_HTML_ENCODE = /&|&|'|&|&|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
var encodeHtml = function(s){
return (typeof s != &string&) ? s :
s.replace(REGX_HTML_ENCODE,
function($0){
var c = $0.charCodeAt(0), r = [&&#&];
c = (c == 0x20) ? 0xA0 :
r.push(c); r.push(&;&);
return r.join(&&);
var REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
var HTML_DECODE = {
&&& : &&&,
&&&: &\&&,
// Add more
var decodeHtml = function(s){
return (typeof s != &string&) ? s :
s.replace(REGX_HTML_DECODE,
function($0,$1){
var c = HTML_DECODE[$0]; // 尝试查表
if(c === undefined){
// Maybe is Entity Number
if(!isNaN($1)){
c = String.fromCharCode(($1 == 160) ? 32 : $1);
// Not Entity Number
需要的东西就这些了,来试一下:
&script type=&text/javascript&&alert(document.getElementsByTagName(&li&)[0].innerHTML);&/script&
怎么样?是不是感觉瞬间高端洋气了呢~看着虽简单,这可是我鼓捣了半天那个编辑器才试成功的,这里不得不吐槽一下博客园的编辑器,太不好用了!而且还有一个重要问题:
&script&标签无法被转义
,如果代码中含有&script&,转义的时候总是出错,猜测是博客园对script进行的特殊处理。所以,若代码中含有&script&标签,只能自己手动“转义了”,即把&换成&把&换成&并且,把所有手动转义后的代码先写在textarea中。看看我是在后台是如何写的吧:
&textarea class=&runcode& style=&width: 90%; height: 100&&&script type=&text/javascript&&alert(document.getElementsByTagName(&li&)[0].innerHTML);&/script&
&/textarea&
&script type=&text/javascript&&
var REGX_HTML_ENCODE = /&|&|'|&|&|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
var encodeHtml = function(s){
return (typeof s != &string&) ? s :
s.replace(REGX_HTML_ENCODE,
function($0){
var c = $0.charCodeAt(0), r = [&&#&];
c = (c == 0x20) ? 0xA0 :
r.push(c); r.push(&;&);
return r.join(&&);
var REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
var HTML_DECODE = {
&&& : &&&,
&&& : &&&,
&&& : &&&,
&&&: &\&&,
var decodeHtml = function(s){
return (typeof s != &string&) ? s :
s.replace(REGX_HTML_DECODE,
function($0,$1){
var c = HTML_DECODE[$0]; // 尝试查表
if(c === undefined){
// Maybe is Entity Number
if(!isNaN($1)){
c = String.fromCharCode(($1 == 160) ? 32 : $1);
// Not Entity Number
var html = encodeHtml('&ol&&li&测试的内容&/li&&li&测试的内容&/li&&li&测试的内容&/li&&li&测试的内容&/li&&/ol&');
$('.runcode').prepend(html);
function runcode(){ var win = window.open(); win.document.write(decodeHtml($('.runcode').html())); }
没有想到别的办法,目前只能这么处理了。若大家有好的方法,欢迎告知哦~
好了,就这些内容了,小伙伴们,快来试试吧~
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致问题补充&&
本页链接:
猜你感兴趣}

我要回帖

更多关于 u0100故障码如何修理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信