用 JavaScript 清理干扰码

网上有些内容发布系统或者论坛的内容会掺杂进干扰码,即看上去是正常的文字,但是复制粘贴出来就会带有一些乱码以及网站网址等标志信息,目的是为了防止发布的内容太轻易被别人拷走。


这干扰码其实就是在 HTML 源码里加一些特定的标签如 font 和 span ,再用样式把它们做成不显示,但复制粘贴时里面的内容会被拷出来。有兴趣的看看带干扰码的 HTML 源文件就知道了。


这里介绍一下用 JavaScript 就能做到的方法,都不用动用什么服务器端之类的大语言。


其基本原理是以 javascript: 为协议,我们可以在 HTML 页面里执行一小段 JavaScript 代码,而这样的小段代码又可以收藏在收藏夹里,叫做 Bookmarklet,《JavaScript 权威指南》里也有介绍。 

注意由于 bookmarklet 代码是要当作一行来解析的,所以不能用 // 的单行注释,必须用 /* */ 的块注释。


把下面这段 HTML 代码存成一个 HTML 文件,然后在链接上右击选保存到收藏夹,以后再遇到有干扰码的网页,选一下这个收藏,这段 JavaScript 代码会执行,把干扰码清理掉。

 

<a href='javascript:
(function() {
var tamper = {
	"font":"font-size: 0px",
	"span":"display: none"
};
for (var t in tamper)
{
	var doms = document.getElementsByTagName(t);
	var numAll = doms.length-1;
	for (var i=numAll; i>=0; i--)
	{
		var item = doms[i];
		if (item.style.cssText.toLowerCase().indexOf(tamper[t]) > -1)
		{
			item.parentNode.removeChild(item);
		}
	}
};
})();
void 0;
'>
JavaScript 清理干扰字符
</a>

现在已经测试 IE 和 Firefox 都支持这种做法。

 

其实雪峰觉着呢,既然在这个网站发出来,就是要分享给大家,让别人也帮忙去转载不是更能扩大影响力嘛,大家正常转载时也会带上原始的版权信息,大可不必费劲做干扰码之类的来增加麻烦。而且要清除掉干扰码,其实也很简单。所以做完上面这个小 bookmarklet ,想找网页来测试一下,都不大容易找到带干扰码的网站了。虽然某流行论坛程序支持干扰码,但现在使用论坛的人都不启用此功能了。欢迎有兴趣的同学多来推荐一些带干扰码的网站,帮我把这个小程序的功能测试一下吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值