在页面内容完全加载后使用jQuery修改DOM元素

时间:2010-08-30 09:39:55

标签: jquery dom

如果我的问题看起来有点误导,我会事先道歉,但我正试着把这个问题包围起来。

我有一个基于闪存的MP3播放器(http://blog.lacymorrow.com/projects/xspf-jukebox),它公开了一个非常适合我的情况的Javascript API。我使用jQuery和swfObject来嵌入Flash播放器,效果很好。

现在播放器具有自动恢复和自动播放功能,可以在页面加载时立即开始播放,这很棒。但是,我想要做的是在浏览某个页面时停止播放器。例如,当我浏览 contact.html 时,我希望播放器停止播放任何音乐。我原以为以下方法可行:

$(function($) {
  window.document.myJukebox.stopTrack();
}); 

然后我记得$(document).ready()$(function($) {})内的所有内容都会在加载所有页面内容之前加载DOM BUT 后立即执行。我需要做的是确保在整个页面完全加载后,无需任何用户干预即可运行上述脚本 - >这就是我所困扰的,请你帮忙。如果我在页面上有以下超链接:

<a id="player-stop" href="javascript:window.document.myJukebox.stopTrack();">Click to Stop</a>

然后点击它,然后播放器 停止,所以我清楚地知道我需要有一些自动运行的东西而无需用户点击STOP按钮。我试过在页面底部的脚本中运行它,但没有运气。

谢谢!

2 个答案:

答案 0 :(得分:1)

我猜第一个不起作用,因为DOM实际上已经准备就绪,但Flash内容当时还没有。

答案 1 :(得分:1)

尝试使用setTimeout计划稍后执行停止功能。如果你在myJukebox上有某种属性来告诉玩家是否正在玩,你可以使用setInterval并在它实际停止玩家时自行清除。

此外,值得调查的是,玩家是否有某种startPlaying事件,并在其触发startPlaying事件后停止。