BitComet 旗下网站

转到日志 博客 css 脚本 权限 DIY [时尚生活话题 时尚·休闲 ]

通过CSS的expression使自己的博客空间完全支持Javascript或VBScript脚本

楼主 发表于:2008-05-31 20:13:59 [回复]

  关键字:博客 自定义 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文件的话可以很简化的说。

 

 

Something ends, something begins, and something never changes......

1楼 发表于:2008-05-31 20:22:17 [回复]

嗯~不错哦~这个要好好看了~^_^顶!!!!!!!!!!

I don`t mind,if u forget me...

2楼 发表于:2008-05-31 20:23:59 [回复]

笨笨可以把留言框里的那张图片平铺啊~no-repeat改成repeat~^_^效果会更好...只是建议~呵呵

网友回复

  • 2008-05-31 21:54:54
  • liaojiayuan (笨笨)
  • 呜呜呜,我改成background-repeat:repeat-all好象没效果.还没有时间试呢.

    惭愧,原来是repeat不是repeat-all,在google上搜到好多repeat-all,晕.

  • Something ends, something begins, and something never changes......
  • 2008-06-01 14:51:36
  • LU-LU
  • 哈哈~现在这个留言框很不错么~呵呵

    请教个问题,怎么做到即使不在blog首页也能听到音乐呢????~

  • I don`t mind,if u forget me...
  • 2008-06-01 18:20:57
  • liaojiayuan (笨笨)
  • 你可以看看我的代码.我是在javascript文件里把播放器加到头像下面了,哈.

    道理和我右上角那个挂件一样的啦.

  • Something ends, something begins, and something never changes......
  • 2008-06-01 18:22:12
  • liaojiayuan (笨笨)
  • 能用javascript的话,干什么都行,哈.

  • Something ends, something begins, and something never changes......

I don`t mind,if u forget me...

3楼 发表于:2008-05-31 20:27:35 [回复]

不错不错~~好好研究下~~

凤兮凤兮归故乡,遨游四海求其皇。 时未遇兮无所将,何悟今兮升斯堂! 有艳淑女在闺房,室迩人遐毒我肠。 何缘交颈为鸳鸯,胡颉颃兮共翱翔! 皇兮皇兮从我栖,得托孳尾永为妃。 交情通意心和谐,中夜相从知者谁? 双翼俱起翻高飞,无感我思使余悲。

4楼 发表于:2008-05-31 20:38:49 [回复]

研究研究

麻煩永遠也停不了,反正已習慣了。看可奈何我

5楼 发表于:2008-05-31 22:25:38 [回复]

先前加了鼠标效果可用,后貌似被屏蔽了。

☆ KL ☆

6楼 发表于:2008-05-31 22:31:36 [回复]

叫びたいほど懐かしいのは、 ひとつのいのち、 真夏の光、 あなたの肩に揺れてた木漏れ日。

7楼 发表于:2008-06-01 00:05:58 [回复]

拿来研习一下..

○ 自己杀死自己 然后再判自己一个死刑 ○

8楼 发表于:2008-06-01 09:24:05 [回复]

俺来学习一下

青春是生命的痕迹 过去是回忆的累积.....

125.34.143.*

9楼 发表于:2008-06-01 13:22:15 [回复]

不愧是我的师傅,当之无愧...顶!!!!!!!!!!!!!

网友回复

  • 2008-06-01 18:21:29
  • liaojiayuan (笨笨)
  • 咦,你的名字没链接了?

  • Something ends, something begins, and something never changes......

10楼 发表于:2008-06-03 14:54:44 [回复]

高手啊,呵呵

网友回复

  • 2008-06-03 15:03:44
  • liaojiayuan (笨笨)
  • Something ends, something begins, and something never changes......

我是一个贪玩又自由的风筝,每天都会让你担忧

11楼 发表于:2008-06-05 17:31:11 [回复]

哈囉.. 我路過 順便打個招呼︿︿

12楼 发表于:2008-06-06 17:39:19 [回复]

我只想知道 怎么把博客名下面那半透明的底纹去了

死ぬようにしましょう バカ野郎

13楼 发表于:2008-06-06 17:40:10 [回复]

挂件的话 用代码更方便

死ぬようにしましょう バカ野郎

14楼 发表于:2008-06-26 16:58:11 [回复]

看了

http://blog.mdbchina.com/Control/Album/View.aspx?fp=20080717%2f3990299_byxfqf080717102705.gif&type=LogoY有来有往.有访必回...希望朋友天天快乐,永远幸福...

登录后发贴