onload的时候执行 文档流已经关闭 write会重新打开文档流 所以覆盖了
用innerHTML的话不会执行里面的script吧?
可以先生成一个节点,然后append到body。
<script type="text/javascript">
var bg_sound=document.createElement("bgsound");//创建背景音乐
bg_sound.id="i_bg"//设置id属性
document.body.appendChild(bg_sound);//body中添加背景音乐
//bg_sound.src="ttmp3.mp3";
i_bg.src="ttmp3.mp3";//设置一个背景音乐文件
//应该也可以用write写出来,可以试下效果。
function bg_stop(){
i_bg.src="";
}
function bg_start(){
i_bg.src="ttmp3.mp3";
}
</script>
<span ><a οnclick="javascript:bg_stop();" href="javascript:void(0);">背景音乐停止</a></span> <span ><a οnclick="javascript:bg_start();" href="javascript:void(0);">背景音乐开始</a></span>
用js改变embed标签的src值
今天有一需求,一堆视频,一堆链接,点击相关的链接,在本页打开相关的视频。
第一想法,很简单么,直接把src值改成点击的那个的href值就可以了。
试了下,发现这样不行,视频该怎么放还是怎么放,永远是刚打开那个。
第二想法,给embed外面加个标签,把里面内容清空,再写进去,这样总可以了吧。
试了下,和上面一样,依旧不行。
又试了许多类似方法,还是不行。
最后,想的,把embed标签隐藏(display:none),再清空试下。
终于可以了。哎浪费了一上午时间。
代码如下
var tabv = document.getElementById("f_tabv"); var tabva = tabv.getElementsByTagName("a"); var tabcv = document.getElementById("f_tab_cv"); tabcv.innerHTML = '<EMBED src="abc.wmv" autostart="true" width="545" height="325" type="video/x-ms-asf"></EMBED>'; for(var i=0; i<tabva.length; i++){ tabva[i].onclick=function(){ var href1 = this.getAttribute("href"); var href2 = '<EMBED src="'+href1+'" autostart="true" width="545" height="325" type="video/x-ms-asf"></EMBED>'; tabcv.getElementsByTagName("embed")[0].style.display="none"; tabcv.innerHTML=""; tabcv.innerHTML=href2; for(i=0; i<tabva.length; i++){ tabva[i].className=''; } this.className = "act"; return false; } }