Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Youtube视频没有';如果我隐藏它的父div_Javascript_Internet Explorer_Youtube_Youtube Api - Fatal编程技术网

Javascript Youtube视频没有';如果我隐藏它的父div

Javascript 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 <

例如,我有一个这样的结构:

Javascript

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&amp;hl=en_US&amp;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&amp;hl=en_US&amp;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)
切换CSS
display
属性不是杀死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