关键字:博客 自定义 DIY Javascript CSS expression star 自定义 VBScript 脚本 权限
昨天发现这里的博客还可以自己定义CSS样式,心里盘算一下,是不是可以通过自己定义的CSS样式使用Javascript或VBScript呢?(这里虽然在首页在自定义模块中使用Javascript或VBScript脚本,但毕竟不能在其它页面也使用脚本。所以自己辛苦找来的挂件啦以及其它东西不能用在其它页面,很不爽)
通过今天一天的试验证明此方法是可行的。
条件:你的博客能够自己编辑CSS样式并且没有过滤样式中的expression关键字。
结果:能够在所有的页面上使用Javascript和VBScript脚本。
后果:说的是公布这个方法的后果。可能使你的博客提供商不再让你自己定义CSS样式,那样你就没得玩了。
希望:当然是希望中国影视库博客把自定义CSS样式关闭啦。我在这里安家并写(抄)了这么多博文的原因就是发现这里的自定义模块里可以使用Javascript或VBScript。
建议:这是个免费的地方,希望大家熟悉脚本的博友干自己该干的,改自己该改的。
下面讲述方法:(其它地方的博客也可以参照下面的方法,主要能改CSS样式,应该可行的),似乎有些垃圾代码,不管了。如果代码不正常,你可以试着把注释部分删除。另外,我只管IE的用户,你可以改一下使其适应所有的用户(如果那种浏览器不支持CSS的expression就不要白费工夫了)。
忘记写红字部分了(差点出问题的时候要被人骂S)
红字部分(也就是重要、注意、Important、Attention啦)进行下面的编辑有些危险。(当然我的这些代码是没有危险的,我指的是你要加入另外的代码的时候),你最好打开多几个不相关的窗口,登录后转到有“自定义风格”的页面。以防你写入了使页面发生严重问题时有机会再进来补救(如果你悲观,可以做更多准备,比如多开几台电脑打开页面,比如先买人UPS连上再做,哈,出错的机率并不大,如果真遇到了刚改坏了就死机的话,那你去买彩六合[老说有争议字眼,原来是这个,哼]吧,有可能中)。我的调试的时候就在下面的代码中写中document.write('ABC'),一保存再刷新,果然显示了ABC,啊,不对不对,整个页面只有ABC三个字,一下子傻眼了。怎么把它改回来呢,好象当时打开了其它窗口并且有“自定义风格的”的连接。要不要哭S了,要找客服管理人员才能弄回来(想象一个,你的整个博客的页面都只显示ABC)。几个比较危险的代码是document.write(),alert(),confirm(),alert和confirm可能会使页面不停的alert和confirm,而document.write()上面说了。
1.当然要先登录啦。
2.点击“自定义风格”弹出自定义风格窗口。
3.点击“编辑CSS”按钮(第3个)
4.在编辑框中加入以下CSS样式
.blog_signature/* 重要:要把这个名字改为你的博客对应的头部元素的Class名称 */
{
star : expression( bebenDefDoFun=function()/* 定义个bebenDefDoFun函数 */
{
var obj = document.all('blog_title'); /* 查找博客标标题所在位置,只是用来放个挂件,根据你的博客改一下blog_title */
if (obj!=undefined)
{
var objMyGua = document.createElement('DIV');/* 定义挂件DIV */
var objIMG = document.createElement('IMG');
objIMG.src = 'http://image.blog.mdbchina.com/postpic/20080531/3752584_meoohy080531132249.gif';
objMyGua.appendChild(objIMG);
objMyGua.style.position = 'absolute';
objMyGua.style.top = '-10px';
objMyGua.style.left = '920px';
obj.appendChild(objMyGua);/* 把挂件DIV加到标题里 */
}
var objScript= document.createElement('script'); /* 关键:插入script,相当于在页面里写<script src=... type='text/javascript'></script> 注意:中国影视库这里的博友请一定要把这个注释删除,因为它会对<进行编辑,会出错 */
objScript.src = 'http://www.wenxin.org/pic/myMDBChinaBlog.js'; /* 改成自己能够编辑的Javascript或VBScript脚本文件地址,如果找不到这地方,那只好象上面的挂件一样一行一行写在这里了 */
objScript.type = 'text/javascript';
objScript.defer = true;
var objHead = document.getElementsByTagName('head').item(0);/* 查找head的位置 */
objHead.appendChild(objScript); /* 把脚本加到head部分里 */
/* 删除定时器,好象不使用定时器会出问题,可能是元素加载顺序引起的 */
if (document.benbenTimerID!=undefined)
{
clearTimeout(document.benbenTimerID);
}
}
, bebenDefTimerFun=function()/* 定义个bebenDefTimerFun函数 */
{
if (document.benbenTimerID==undefined) document.benbenTimerID= setTimeout('bebenDefDoFun()',10);
}
)}
.footer/* 重要:要把这个名字改为你的博客对应的脚部元素的Class名称,一般的博客都有个类似的名称,页面显示对应的元素的时候应用此Class,就运行了bebenDefTimerFun()函数 */
{
star:expression(bebenDefTimerFun())}
原理:在.blog_signature定义的两个函数脚本会在页面使用CSS类名blog_signature的时候进行初始化(也就是我们有了这两个函数定义),接着页面使用CSS类名footer的时候会运行上面定义的bebenDefTimerFun()函数。
注意:blog_signature请使用页面前面的元素使用的类名,并且最好是只有一个元素使用的,否则可能会影响页面速度(函数定义语句运行多次)。footer这个CSS类名一样的问题。
OK,就这样。看看我的效果:http://blog.mdbchina.com/liaojiayuan/里右上角那个挂件风铃,它可是在每个页面上都有的哦。还在最下面的
这个东东,是页面统计分析用的(这个最有用了,要不你总不能每次发博文的时候都写一样这个吧?)。当然,你还可以做其它的东西,比如在其它页面放入音乐播放器什么的,总之,你想做的都可以做。不过,希望大家不要乱搞使到你的博客提供商把CSS自定义功能都给屏蔽了就不好玩了。
好了,弄了一天,希望对大家有帮助并且顶一顶,提高点知名度,嘿……
如果要转载,写明出处好不?毕竟忙了一天哦。
总觉得还可能简化,试了大半天,没多大进展。主要是想提高性能,expression在每次有改变的时候都运行的(如按键按下,鼠标动作,滚屏,缩放……)
貌似只嵌入外部javascript文件的话可以很简化的说。