Javascript Youtube视频没有';如果我隐藏它的父div
例如,我有一个这样的结构: JavascriptJavascript Youtube视频没有';如果我隐藏它的父div,javascript,internet-explorer,youtube,youtube-api,Javascript,Internet Explorer,Youtube,Youtube Api,例如,我有一个这样的结构: Javascript function toggle(id){ var element = document.getElementById("id"); if(element.style.display != 'block'){ element.style.display = 'none'; } else { element.style.display = 'block'; } } HTML <
function toggle(id){
var element = document.getElementById("id");
if(element.style.display != 'block'){
element.style.display = 'none';
} else {
element.style.display = 'block';
}
}
HTML
<div onclick="toggle('holder')">Toggle Video</div>
<div id="holder" style="display:none">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/A_hp2ubJaNo?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/A_hp2ubJaNo?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</div>
切换视频
当我点击切换视频
时,视频显示
并开始播放,当我再次点击时,视频隐藏
,但视频仍在Internet Explorer中播放
请不要用jQuery或任何库发布任何答案,只发布纯Javascript,谢谢 切换CSS
display
属性不是杀死Flash的可靠方法。正如您所发现的,浏览器之间的行为是不同的。您最好使用domeElement从DOM中剪切元素。
(domeElement)
切换CSSdisplay
属性不是杀死Flash的可靠方法。正如您所发现的,浏览器之间的行为是不同的。您最好使用domeElement从DOM中剪切元素。
(domeElement)
在IE7的情况下,与IE8或FF 3.6相比,Youtube的对象在隐藏时似乎不会“卸载”自身。例如,在IE8中,如果对象被隐藏,则函数youtubeobject.stopVideo未定义,但在IE7中它仍然存在
我认为更优雅的解决方案是检查Youtube对象中是否存在“stopVideo”函数,然后调用它
function toggle(id){
var element = document.getElementById("id");
if(element.style.display != 'block'){
element.style.display = 'none';
var ytobject = document.getElementById("youtubeplayerid");
if(ytobject.stopVideo) {
ytobject.stopVideo();
}
} else {
element.style.display = 'block';
var element = document.getElementById("youtubeplayerid");
if(ytobject.playVideo) {
ytobject.playVideo();
}
}
}
在IE7的例子中,与IE8或FF3.6相比,Youtube的对象在隐藏时似乎没有“卸载”自己。例如,在IE8中,如果对象被隐藏,则函数youtubeobject.stopVideo未定义,但在IE7中它仍然存在
我认为更优雅的解决方案是检查Youtube对象中是否存在“stopVideo”函数,然后调用它
function toggle(id){
var element = document.getElementById("id");
if(element.style.display != 'block'){
element.style.display = 'none';
var ytobject = document.getElementById("youtubeplayerid");
if(ytobject.stopVideo) {
ytobject.stopVideo();
}
} else {
element.style.display = 'block';
var element = document.getElementById("youtubeplayerid");
if(ytobject.playVideo) {
ytobject.playVideo();
}
}
}
能否显示切换()
?我想它会切换元素.样式.显示
,但为了完整性…@Marcel Korpel我编辑了我的问题。你能显示切换()
?我想它会切换元素.样式.显示
,但为了完整性…@Marcel Korpel我编辑了我的问题。也许,但在除IE之外的所有浏览器中都有效,这就是问题所在:PMaybe,但在除IE之外的所有浏览器中都有效,这就是问题所在:P