版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/mayongzhan - 马永占,myz,mayongzhan
上次想要搞掉csdn在博客上的广告,未果,因为csdn在广告上加了最狠毒的element.style,导致一切外加的样式由于优先级问题而失效。
经过调试我把样式放到页面加载完成里执行,结果还是不行,仔细检查代码,发现csdn把广告的弹出放到统计的js里了。
统计js中间有一段代码调用了另外一个真正的广告弹出代码,最后发现这段代码的执行也是在加载完成后执行。如果想要屏蔽代码,只能延时执行隐藏的代码,这样不太好,因为会看到广告闪了一下(其实也是一种增加PV的方法,有的用户觉得有东西闪了一下,由于好奇而再次刷新页面…),所以此种方法不可行。
继续寻找方案,最终发现了可以屏蔽广告代码的方法,由于广告的展示涉及到csdn广告的收入,具体的实施在此不予以表明,只提供关键的思考切入点:广告代码的element.style!!!
以下样式代码基于上一版本,未做修改。
完整的样式如下
#csdnblog_allwrap {width:1000px;}
#csdnblog_sidebar {width:200px;}
#csdnblog_sidebar div.gutter{width:100%;margin:0px;}
.aboutauthor{padding:0px;border-left:0px;border-bottom:0px;border-top:0px;border-right:1px dotted #AAA;}
#csdnblog_content {width:800px;}
#csdnblog_content div.gutter{}
.publiclist_sidebar ul li {margin:0px;padding:0px;}
.publiclist_sidebar ul li a {margin:0px;padding:0px;}
.user_article h1 img{display:none;}
.user_article p{text-indent:0em;}
.blogstory p{text-indent:0em;}
.aboutauthor{width:200px;}
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js">
</script>
<script type="text/javascript" src="/SyntaxHighlighter/jquery.highlighter.js"></script>
<script language="javascript" type="text/javascript">
$jQ = jQuery;
$jQ('img[alt^="XML"]:first').replaceWith("");
$jQ("#Search_ddlSearchScope > option[value!='all']").attr("selected","true");
$('#userInfo').replaceWith('<dt style="text-align: left;">用户信息</dt><dd class="middle"><a href="http://blog.youkuaiyun.com/mayongzhan"><img alt="" src="http://avatar.profile.youkuaiyun.com/3/6/3/1_mayongzhan.jpg"/></a></dd><span style="display:none;"><span id="userInfo"></span></span>');
$jQ(document).ready(function(){
var blogTitle = $jQ('.user_article > h1');
var blogNextPrev =$jQ("#Post\\.ascx_ViewPost_PreviousAndNextEntriesDown");
if (blogNextPrev.html() != null) {
blogTitle.html(blogTitle.html() + "<div> </div><div>" + blogNextPrev.html() + "</div>");
}
if ($jQ('#csdnblog_content > .gutter > script').length != 0) {
var csdnTempScriptSrc = $jQ('#csdnblog_content > .gutter > script')[0].src;
if (csdnTempScriptSrc == 'http://blog.youkuaiyun.com/javascript/PrintNotice.js' || csdnTempScriptSrc == '/javascript/PrintNotice.js') {
$jQ("script ~ .default_contents:first").css('display','none');
}
}
});
</script>