如何使用javascript控制多个窗口打开

时间:2014-12-20 07:27:18

标签: javascript google-chrome internet-explorer firefox

在我的应用程序中,我们可以选择访问url并能够在单独的window.open对话框中查看应用程序。所以,我的应用程序看起来像一个单独的窗口,我们可以开始研究它。

怎么做: 在浏览器中输入URL并单击“输入”按钮,将出现一个新的window.open对话框。

问题:

每当我从旧标签中复制网址并将其粘贴到下一个标签中时,浏览器就会打开第二个window.open对话框,以便我的应用程序开始作为两个单独的对话框工作..我想要在我的代码中限制此操作。

我限制了相同的标签,多个输入选项,但我无法控制多个标签复制粘贴操作..

注意: 在复制粘贴操作期间,我已经实现了会话概念,并且按预期正常工作。

但是,如果用户尝试复制粘贴登录URL并开始使用该应用程序,那么我的应用程序允许同一用户登录...(因为在每个选项卡中,浏览器可以使用相同的会话ID。)< / p>

请帮助在单独的标签中限制多个window.open功能。

提前致谢..

enter image description here

这是我的代码:

var named_wnd = {};
var agt_value = navigator.userAgent.toLowerCase();
var broswerVersion = parseInt(navigator.appVersion);
var broswerVersion_nav = ((agt_value.indexOf('mozilla') != -1) && (agt_value.indexOf('spoofer') == -1) && (agt_value.indexOf('compatible') == -1) && (agt_value.indexOf('opera') == -1) && (agt_value.indexOf('webtv') == -1) && (agt_value.indexOf('hotjava') == -1));
var broswerVersion_v1 = (broswerVersion_nav && (broswerVersion == 6));
var broswerVersion_v6up = (broswerVersion_nav && (broswerVersion >= 6));
var id = 'myWin';

function BaseWNDURL(thisurl) {

    var named_wnd_Width = 810;
    var named_wnd_Height = 610;

    attr = 'toolbar=no,location=no,directories=yes,status=yes,menubar=yes,' +
        'scrollbars=yes,resizable=yes,top=0,left=0,width=' + named_wnd_Width + ',height=' + named_wnd_Height + ',' +
        'screenX=' + (screen.width - named_wnd_Width) / 2 + ',screenY=' + (screen.height - named_wnd_Height) / 2;

    if ((broswerVersion_v1 || broswerVersion_v6up)) {
        named_wnd[id] = window.open(thisurl, id, attr);

        if (broswerVersion_nav) {
            named_wnd[id].screenX = (screen.width - named_wnd_Width) / 2;
            named_wnd[id].screenY = (screen.height - named_wnd_Height) / 2;
        }
    } else {
        BaseWNDURL_OpenUP(thisurl);
    }
}

function BaseWNDURL_OpenUP(thisurl) {

    var named_wnd_Width = screen.width - 10;
    var named_wnd_Height = screen.height - 80;
    attr = 'toolbar=no,location=no,directories=no,status=yes,menubar=no,' +
        'scrollbars=yes,resizable=yes,top=0,left=0,width=' + named_wnd_Width + ',height=' + named_wnd_Height + ',' +
        'screenX=' + (screen.width - named_wnd_Width) / 2 + ',screenY=' + (screen.height - named_wnd_Height) / 2;

    if (named_wnd[id]) {
        if (named_wnd[id].closed) {

            named_wnd[id] = window.open(thisurl, id, attr);
            if (broswerVersion_nav) {
                named_wnd[id].screenX = (screen.width - named_wnd_Width) / 2;
                named_wnd[id].screenY = (screen.height - named_wnd_Height) / 2;
            }
            named_wnd[id].focus();
        } else {
            named_wnd[id].focus();
        }
    } else {
        named_wnd[id] = window.open(thisurl, id, attr);

        if (broswerVersion_nav) {
            named_wnd[id].screenX = (screen.width - named_wnd_Width) / 2;
            named_wnd[id].screenY = (screen.height - named_wnd_Height) / 2;
        }

        named_wnd[id].focus();
    }
    named_wnd[id].focus();
}

0 个答案:

没有答案