本帖最后由 liangxin_901 于 2014-05-21 14:32:32 编辑

解决方案 »

  1.   

    用ShowModalDialog吧。如果打开了一个视频,那么就不允许打开令一个视频了,除非把这个关掉,从新点击父类页面的其他视频,再弹出新页面。
      

  2.   


    var newWindow = null;
    var bar = document.getElementById("abc");
    bar.setAttribute("onclick","windowopen()");
    function windowopen(){
    if (newWindow == null)  {
        newWindow  = window.open('http://www.xiami.com/play?ids=/song/playlist/id','','scrollbars=0,toolbar=0,status=0,location=0,resizable=0,width=930,height=500');
    } else {
        newWindow .location= "new address";
    }
    var PlayString = "playalbum(1384498187);recommendLog('1.5-9^1^68^1^8154435^1400649047^',202,'web',0,'album','objectid',1384498187,'8154435');"
    setTimeout(PlayString,1000)
    }
    没看懂你的需求
      

  3.   


    实在抱歉哦,每次都问问题都表达不清,见谅
    其实就是希望这个页面window.open弹窗后,如果已经存在弹出的窗口就不在弹窗了,如果弹窗被关闭了那就允许再一次弹窗。
    如果设置了相同的name,那已经存在的窗口内容就会被覆盖,我不想这样。
    因为我把整个音乐网的播放按钮都设置了window.open,所以点一次弹一次,非常麻烦。
    你的代码的作用是什么呢?我试了一下,把相同的代码修改了一下,分别设置给两个播放按钮,发现仍然不行,内容还是会被替换,而且把弹窗关闭以后就不能再弹窗了,变回了标签页打开。
      

  4.   

    我觉得有2种思路
    第一,做成父子窗体,嵌入iframe,父窗体找子窗体,如果存在就return
      

  5.   

    点快了,
    另一种就是做成div弹出层
    判断层的style.display是none还是block来决定是否return
      

  6.   


    思路是好的,但是这样还能弹出播放器吗?我想问个问题,我有以下这段代码,我通过GreaseMonkey(油猴)插件把他限制在了一个网站里执行,比如baidu.com
    var url = window.location.href;
    window.open(url,'','scrollbars=0,toolbar=0,status=0,location=0,resizable=0,width=930,height=500');
    window.open('','_self','');
    window.close();
    但是这样导致只要网址是baidu.com,就会无限循环弹窗-关闭-弹窗的动作。
    有什么办法,让他只执行一次弹窗。打个比方就是,我从其他进到baidu.com就弹出一次,之后不动作;然后我又一次进到baidu.com代码仍然有效但也只是弹出一个。
      

  7.   

    办法其实很多的,因为每个window都不一样。
    打开一个窗口,window就是一个新的对象。
    你给这个对象定义个属性,如果这个属性是未定义,不就是一个新的页面了吗。
      

  8.   

    我想,认真看一下手册是很必要的!
    不是什么问题都需要问别人的window.open(URL,name,features,replace)
    参数 描述
    URL 一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。
    name 一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。
    features 一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。
    replace
    一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:
    true - URL 替换浏览历史中的当前条目。
    false - URL 在浏览历史中创建新的条目。
      

  9.   


    感谢版主能抽空给我讲解。
    因为我算是帮人,本身并没有相关技术和知识,所以花了20天的时间来略微接触js,jquery,正则。然后编写脚本……
    不免遇到问题,我首先都会先搜索一遍看有没有类似情况之类的,正因为没人问才来的。而window.open的那个是有看的。在主楼有说道,我起了相同的name,但是歌曲内容被替换了,我不想要那样的效果。至少我希望当name相同时另一个window.open不执行这样的效果。
    replace这部分我就看不懂了,字符串之类的不太了解,所以没细究。至于7楼的部分,如果我起了name的话,父子窗口都被关闭了,看来要好好研究一下。版主,恕我无理的要求,你看看能回答下面链接里4楼的问题吗?我并不想把分一直留在那里,想把分给vincentguo_,但是4楼没有得出结果,又无法结账
    http://bbs.csdn.net/topics/390777681
      

  10.   

    已弹出就不弹出可以设置全局变量记录一下
    win = open()
    用时检查一下就可以了