CSS裸奔节之强制脱衣
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/312)的形式标明文章原始出处和作者信息及本声明。今天是CSS裸奔节,所谓CSS裸奔,就是把网站的所有css去掉,这样所有的显示格式什么的就都没有了,只剩下html实体显示出来,起源好像是比较无聊的想法,就是剥去css的外衣,让大家看看你的(x)html代码是否工整。
不过今天偶不打算裸奔,而是告诉大家一个可以看到任何网站裸奔形象的方法,参考我以前写的用js丰富你的书签功能,创建一个书签,也可以放到书签工具栏上,内容如下:
javascript:void((function(){var style=document.getElementsByTagName('style');for (i=0; i<style.length; i++)style.item(i).disabled=true;var link = document.getElementsByTagName('link');for (i=0; i<link.length; i++)if ('text/css' == link.item(i).type)link.item(i).disabled=true;var obj = document.getElementsByTagName('*');for (i=0; i<obj.length; i++){obj1 = obj.item(i);if (obj1.attributes.getNamedItem('style')){obj1.attributes.getNamedItem('style').value = '';}}})());
注意一定要是一行才行,作为书签地址就可以了,然后打开任何一个网站,点这个书签,是不是把css全部都脱掉了?懒人也可以直接把这个链接拖到工具栏上使用:
公布源代码如下,没有太复杂的地方,有了DOM说明,知道各个对象的方法和属性之后,把style和link全部禁用,然后把inline的style=""的value全部设置为空串就可以了:
javascript:void((function(){
/* 用style方式引用的css */
var style=document.getElementsByTagName('style');
var s='Style:' + style.length;
for (i=0; i<style.length; i++)
{
/*s += style.item(i) + '|';*/
style.item(i).disabled=true;
}
/* 用link方式引用的css */
var link = document.getElementsByTagName('link');
s += 'Link:' + link.length;
for (i=0; i<link.length; i++)
if ('text/css' == link.item(i).type)
{
/*s += link.item(i).href + "|\\n";*/
link.item(i).disabled=true;
}
/* 任意对象的style="" */
var obj = document.getElementsByTagName('body').item(0).childNodes;
var obj = document.getElementsByTagName('*');
s += 'Obj:' + obj.length;
for (i=0; i<obj.length; i++)
{
obj1 = obj.item(i);
if (obj1.attributes.getNamedItem('style'))
{
s += obj1.nodeName + obj1.attributes.getNamedItem('style').value + "\\n";
obj1.attributes.getNamedItem('style').value = "";
}
}
/*alert(s);*/
})());
这个文件删除掉注释以后,可以用下面这个命令转换为一行:
cat css1.js |tr -d \\\\n |sed -r -e 's/$/\\n/' -e 's/\\t//g'
这样就得到了上面那段源代码。
javascript程序调试比较麻烦,以前我的方法是在vim中编辑,然后用命令转化为一行,再手工粘贴到书签的地址中,执行,然后有错误再回到编辑。不过今天发现一个好方法,其实也就是脑子转个弯儿的事,创建一个html文件,在里面把javascript代码调试好,然后再转换为可以用在书签中的形式。
另外Firefox2的Error Console虽然能够监测js错误,但是如果不小心点了上面的“Messages”,就会发现错误不显示了,需要再点“All”查看所有信息,今天为这是纳闷了半天,因为切换显示错误分类的时候没有任何征兆。
参考:
- CSS裸奔发起人的网站
- Document Object Model (DOM) Level 1 Specification
- Document Object Model (DOM) Level 2 HTML Specification
- JavaScript Debugger(Venkman)

Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
sk*rt
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
If you like this then please subscribe to the
April 6th, 2007 at 9:12:42
Firefox 不是有吗……
查看 -> 页面风格 -> 无风格
[Reply]
April 6th, 2007 at 13:57:02
真昏死,头一次发现FF有这功能,成杨白劳了。
[Reply]
September 3rd, 2007 at 22:07:28
[...] 呵呵。 不过今天在 Fwolf’s Blog 发现了这篇 《 CSS裸奔节之强制脱衣 (trackback) 》文章, 觉得如果能早点发现, [...]