我有一个项目,是一个视频教学的系统。在这个网站中点击一个视频链接,在新窗口中播放视频。但是如果在当前有一个视频在播放(简称B1)时,我又点击一个视频,那麽就又会打开一个页面播放视频(B2),当同时我之前的视频页面(即B1)的视频也会变成后面的视频播放(B2)的内容。(即B1和B2播放的视频的内容是一样的)我在网上看了一些相同的网站,他都是使用window.open()来使得播放的页面始终只会打开在那一个视频窗口。本来我也按这样的方法来改,我们这边都测试过了,但是给客户后,客户试用给我们反馈说是他们的浏览器有一些是禁止弹窗的,尽管可以点击允许弹窗,当感觉起来不是十分方便。要求我们跟改。我现在没办法了,请大大们帮帮忙给我写解决的方法?即不是弹窗方式打开页面,但有要在始终只用一个播放窗口打开?

解决方案 »

  1.   

    关键问题是打开指定名称的窗口就可以解决你的问题了,比如<SCRIPT language="javascript" type="text/javascript">
    var winfeature="toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=600, height=400, left=0, top=0";
    var url="你的连接"
    var popw=window.open(url, 'MyVideo_winName',winfeature);popw.focus();
    </SCRIPT>
      

  2.   

    这个得检查一下是否有播放器的进程 如果存在 不调用window.open() 在原窗口播放
    不存在 调用window.open()
      

  3.   

    关键问题是打开指定名称的窗口就可以解决你的问题了,每次打开是指定相同的窗口就可以了,定义成函数如下,比如 <SCRIPT language="javascript" type="text/javascript"> 
    function openVideo(video_url)
    {
    var winfeature="toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=600, height=400, left=0, top=0"; 
    var url=video_url);
    var popw=window.open(url,'MyVideo_winName',winfeature);
    popw.focus(); 
    }
    </SCRIPT>应用:
    <a href="javascript:openVideo('视频连接URL');">视频XX</a>
      

  4.   

    多了一个括号 :( 再来<SCRIPT language="javascript" type="text/javascript"> 
    function openVideo(video_url) 

    var winfeature="toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=600, height=400, left=0, top=0"; 
    var url=video_url; 
    var popw=window.open(url,[color=#FF0000]'MyVideo_winName'[/color],winfeature); 
    popw.focus(); 

    </SCRIPT> 
      

  5.   

    :)<SCRIPT language="javascript" type="text/javascript"> 
    function openVideo(video_url) 

    var winfeature="toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=600, height=400, left=0, top=0"; 
    var url=video_url; 
    var popw=window.open(url,'MyVideo_winName',winfeature); 
    popw.focus(); 

    </SCRIPT> 
      

  6.   

    用session解决.如果存在就表示已经打开了.
      

  7.   

    我也使用了session来追踪,但是有个问题,就是在用户关闭了播放页面,需要要删除这个session的追踪,否则当客户没有播放任何视频时,还是会给出提示(这里是今天客户给反馈的,要求给出提示)。我用onunload来删除追踪时,这个onunload在刷新和关闭时,都会执行的啊
      

  8.   


    还没有解决?!看来你这里的要求是这样设计了:
    设计一个指定ID号的DIV层,里面加入iframe(并注意指出名称和ID,都相同)元素,打开的页面时放到该iframe中显示,视频连接注意设置 target 为 iframe 的ID号 ,隐藏和显示的问题可以用JAVASCRIPT操作DIV层;比如:
    <div id="video_div">
    <iframe src="打开视频的URL" id="myvideo" name="myvideo" width="600" height="400">&nbsp;</iframe>
    </div>视频连接:
    <a target="myvideo" href="视频URL(这里最好用JS函数来操作)">视频XX</a>================================================================================另一种方法是设计一个指定ID号的DIV层,里面直接加入播放器,隐藏和显示的问题可以用JAVASCRIPT操作DIV层;播放源也可以用JAVASCRIPT来动态改变,当然这里用JS来操作,比如:<div id="video_div02">
    <!--播放器代码这里是个例子,可以根据自己的情况设定-->
    <OBJECT id=WindowsMediaPlayer1 height=60 width=480 classid=clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6>
    <PARAM NAME="URL" VALUE="http://cimg2.163.com/culture/200609/22/508.mp3">
    <PARAM NAME="rate" VALUE="1">
    <PARAM NAME="balance" VALUE="0">
    <PARAM NAME="currentPosition" VALUE="0">
    <PARAM NAME="defaultFrame" VALUE="">
    <PARAM NAME="playCount" VALUE="1">
    <PARAM NAME="autoStart" VALUE="-1">
    <PARAM NAME="currentMarker" VALUE="0">
    <PARAM NAME="invokeURLs" VALUE="-1">
    <PARAM NAME="baseURL" VALUE="">
    <PARAM NAME="volume" VALUE="50">
    <PARAM NAME="mute" VALUE="0">
    <PARAM NAME="uiMode" VALUE="full">
    <PARAM NAME="stretchToFit" VALUE="0">
    <PARAM NAME="windowlessVideo" VALUE="0">
    <PARAM NAME="enabled" VALUE="-1">
    <PARAM NAME="enableContextMenu" VALUE="-1">
    <PARAM NAME="fullScreen" VALUE="0">
    <PARAM NAME="SAMIStyle" VALUE="">
    <PARAM NAME="SAMILang" VALUE="">
    <PARAM NAME="SAMIFilename" VALUE="">
    <PARAM NAME="captioningID" VALUE="">
    <PARAM NAME="enableErrorDialogs" VALUE="0">
    <PARAM NAME="_cx" VALUE="12700">
    <PARAM NAME="_cy" VALUE="1588">
    </OBJECT>
    </div>
      

  9.   

    TO:shenzhenNBA大大,先感谢你!我看了你刚才给我的回复,我明白你的意思。不过我这里的要求是这样:
    当用户点击了一个视频,在一个新的页面中打开播放页面(b1)。当用户又点击了一个播放链接时,提示他有一个视频正在播放,要打开新的播放页面,会把就得播放页面关闭,是否继续?是,就会重新载入视频内容在(b1)中播放;否,就什么也不做。
    我上午在百度了下,发现可以通过在连接中加入同一个target,使得播放只在一个页面中显示。例:<a href="movie.do?method=verify&id=${video.id }" target="play"> 这样我每次都只能有一个视频在播放页面。当又有一个新问题就是在当b1存在,点击新的链接,这样就会重新载入b1并提示是否,这样即使是点击否,之前的b1的视频内容也没法显示了。我在这里想了下,是在是想不出解决的方法,麻烦大大们根据这个帮我一起想个解决方法。谢谢
      

  10.   

    window.open()
    .
    人力资源