| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1906 人关注过本帖, 1 人收藏
标题:innerHTML代码规范问题js
只看楼主 加入收藏
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:18 
innerHTML代码规范问题js
使用 innerHTML给文本域赋值时。。得到的代码在IE 6.0 里的是大写的字母,有些属性没有双引号


<FONT COLOR=red>字体</FONT> 不符合标准。。这个用js要怎样处理成

<font color="red">字体</font>

html代码标签都变成小定。。属性无双引号的自动加上双引号。。?


我是从HTML编辑器里获取的。
程序代码:
//将html标签到大小转换为小写并属性加双引号,IE时才调用
function ieHTML(content)
{
    var okText = content.replace(/<(\/?)(\w+)([^>]*)>/g,function(match,$1,$2,$3){
        if($1){
                return "</"+ $2.toLowerCase() +">";      
        }      
        return ("<"+ $2.toLowerCase() +$3+">").replace(/=(("[^"]*?")|('[^']*?')|([\w\-\.]+))([\s>])/g,function(match2,$1,$2,$3,$4,$5,position,all){
                if($4){
                        return '="'+ $4 +'"'+ $5;
                }
                return match2;
        })
});
    return okText.replace(/<\/?([^>]+)>/g,function(lele){return lele.toLowerCase();});
}
这个。。还不是很完善。。
有些加不上引号。小写的没问题了。

<font color=#00ffff>51js</font>

color= 这里加不上引号。。

pluginspage=http:// 加不上引号

"><embed style="width: 498px; height: 500px" pluginspage=http://www. src=http://player. width="498" height="500" type=application/x-shockwave-flash wmode="transparent" quality="high"></embed>




[ 本帖最后由 lele2007 于 2010-9-5 22:40 编辑 ]
搜索更多相关主题的帖子: 规范 代码 innerHTML 
2010-09-05 22:38
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
html=html.replace(/<\w+( [^=<>]+=[^<>]*)+\/?>/g,function(m,p1,p2){
var rg=/<(\w+)(( [^=<>]+=[^<>]*)+\/?>)/;
m='<'+m.replace(rg,'$1').toLowerCase()+m.replace(rg,'$3')+'>';
return m.replace(/([^=]+=)([^<>/]*)/g,function(m1,p3,p4){return p3+'"'+p4+'"';  });}).replace(/(<\/)([^<>/= ]+)>/g,function(m,p1,p2){return p1+p2.toLowerCase()+'>';});

请问这个有什么比较好的办法能实现?

innerHTML后,html标签加上引号。。

学习编程www.
2010-09-05 22:39
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:20 
小子~又写编辑器啊
2010-09-06 11:32
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
以下是引用aspic在2010-9-6 11:32:32的发言:

小子~又写编辑器啊
呵呵。。。之前的是前台。现在是后台。。^_^..~
上次用你的方法有效
这个innerHTML返回的信息,版主,也支个招?


学习编程www.
2010-09-06 15:12
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:0 
return ("<" + $2.toLowerCase() + $3 + ">").replace(/=(("[^"]*?")|('[^']*?')|([^\s]+))([\s>])/g, function(match2, $1, $2, $3, $4, $5, position, all) {


把我叫过来都没分接了

[ 本帖最后由 foktime 于 2010-9-8 17:39 编辑 ]
收到的鲜花
  • lele20072010-09-08 19:49 送鲜花  5朵   附言:原创内容
  • lele20072010-09-08 19:50 送鲜花  5朵   附言:^_^..
  • lele20072010-09-08 19:50 送鲜花  5朵   附言:好文章
  • lele20072010-09-08 19:51 送鲜花  5朵   附言:原创内容
  • lele20072010-09-08 19:51 送鲜花  5朵  
  • lele20072010-09-08 19:52 送鲜花  5朵   附言:学习加分。。
  • lele20072010-09-08 19:53 送鲜花  5朵   附言:不能循环加分- - ||
  • lele20072010-09-08 19:53 送鲜花  5朵   附言:再次加分..
  • lele20072010-09-08 19:54 送鲜花  5朵   附言:分用了,咱再赚。^_^...
2010-09-08 15:48
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
以下是引用foktime在2010-9-8 15:48:36的发言:

return ("<" + $2.toLowerCase() + $3 + ">").replace(/=(("[^"]*?")|('[^']*?')|([^\s]+))([\s>])/g, function(match2, $1, $2, $3, $4, $5, position, all) {


把我叫过来都没分接了
^_^...~~


版主,我测试了代码。。在编辑器里的内容,,其它的都能正常,标签小写成功。

但是,双引号加不上。。
<font color=#0099ff>。。编程论坛</font>。
<p><embed pluginspage=http://www. src=http://player. width="600" height="500" type=application/x-shockwave-flash wmode="transparent" quality="high"></embed>

embed标签里的  pluginspage=""  双引号没有效果。。了  ~ _ ~....

学习编程www.
2010-09-08 20:00
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
大部份,双引号可以加上。。

好奇怪。。

<font color=#0099ff>。。编程论坛</font>。  这个font标签的加不上。。
flash标签的。也是一样。。

学习编程www.
2010-09-08 20:02
lele2007
Rank: 5Rank: 5
来 自:广东省深圳
等 级:职业侠客
威 望:6
帖 子:1028
专家分:305
注 册:2007-9-4
收藏
得分:0 
前台编辑器。。
前台编辑器.rar (1.13 MB)


预览图片:
图片附件: 游客没有浏览图片的权限,请 登录注册


---------------------------------我是谁?我是分割线---------------------------------

后台编辑器..
后台编辑器.rar (33.4 KB)


预览图:
图片附件: 游客没有浏览图片的权限,请 登录注册

学习编程www.
2010-09-08 20:41
towering
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:261
专家分:507
注 册:2007-10-9
收藏
得分:0 
收下备用,谢谢!

我的ASP小站:http://www./
2010-09-09 00:15
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:0 
怎么会没效果呢  正则已经没有问题了啊  给你下面代码你测试一下。
程序代码:
    alert(ieHTML('<embed pluginspage=http://www. src=http://player. width="600" height="500" type=application/x-shockwave-flash wmode="transparent" quality="high"></embed>'));
    alert(ieHTML('<font color=#0099ff>。。编程论坛</font>'));
function ieHTML(content)
{
    var okText = content.replace(/<(\/?)(\w+)([^>]*)>/g,function(match,$1,$2,$3){
        if($1){
                return "</"+ $2.toLowerCase() +">";     
        }
        return ("<" + $2.toLowerCase() + $3 + ">").replace(/=(("[^"]*?")|('[^']*?')|([^\s]+))([\s>])/g, function(match2, $1, $2, $3, $4, $5, position, all) {
                if($4){
                        return '="'+ $4 +'"'+ $5;
                }
                return match2;
        })
});

return okText.replace(/<\/?([^>]+)(?=\=)>/g, function(lele) { return lele.toLowerCase(); });
}
仔细检查检查看别的地方是不是有问题
收到的鲜花
  • lele20072010-09-09 09:43 送鲜花  5朵   附言:精辟...
2010-09-09 08:33
快速回复:innerHTML代码规范问题js
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039059 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved