2007/08/09 | 和5D的同仁讨论一个Sidebar的技术问题
类别(开发) | 评论(6) | 阅读(102) | 发表于 09:50

http://blog.5d.cn/js/blogdata.js

今天研究了一下上面这个文件,似乎此文件为每个博客页的数据异步读取脚本,包括blogcontent和sidebar,其中的getinfo(userpath)函数(148行)会载入sidebar的内容至页面中,通过阅读代码发现,脚本会先寻找id为sidebar的结点,然后将sidebar的相应内容插入,如果模板中没有id为sidebar的结点,则创建一个结点并将sidebar的内容创建为一个全新的结点且暂不插入到document中,同时,寻找id为sidebar子节点(如menu_c)的结点并将sidebar中对应的子内容“插入”其结点中,如果没有找到相应的id则不“插入”。此“插入”用的是innerHTML = innerHTML(164行起)。

我因此遇到了一个问题,在我的sidebar中有一个自动播放音乐的embed,id为sidebar_29_c,而模板中没有{sidebar},也没有id为sidebar或sidebar_29_c的结点。但我惊奇的发现网页打开后音乐还是会播放,并且用js遍历不到这个节点,因为创建好的结点没有插入document中。我又在模板中加入sidebar_29_c的id,但发现出现了两个embed,两首歌同时播放。我只能关掉插入document的那一个……

问题的关键在于不“插入”document的播放器依然在播放,而我无法通过脚本控制它。难道非要写id=sidebar的结点才可以控制它么?

p.s. 仅仅document.createElement的结点为什么会工作?太奇怪了……

各位大虾遇到这样的问题了吗?有何高见?

地址:http://blog.5d.cn/user10/jinjiang/Category/49016.html

12

评论Comments

日志分类
首页[442]
随笔[88]
分享[81]
音乐[52]
思考[37]
相册[48]
体坛[65]
开发[71]