Javascript-打开新窗口而不重用以前打开过的窗口

时间:2017-07-26 15:37:18

标签: javascript

所以我的问题是我的原始页面上有一个按钮,应该打开一个新窗口,以便用户可以创建一个新对象。这是第一次按下按钮时工作正常。但是,如果我想同时创建另一个对象并在我的原始页面上按下创建新对象,而不是创建另一个新窗口,该站点只会在第一个新对象的同一窗口上打开新的创建对象页面正在努力创造。显然,这会导致我最初键入的所有信息都会导致丢失新对象。

这是调用我的openPopWindow函数的onClick,它打开了窗口。

onClick="openPopupWindow('<% =NEWOBJECT_URL %>', 0);"

这是openPopWindow函数

function openPopupWindow(strPage, TicketId){
        var winTop = 10;
        var winLeft = Math.round(screen.width / 2) - 800/2;
        var POPUP_FEATURES  = "scrollbars=no,resizable=yes,toolbars=no,status=no,height=650,width=800";
            POPUP_FEATURES += ",top=" + winTop + ",left=" + winLeft;
        var POPUP_NAME = "NewViewWindow"
        var POPUP_FNAME = strPage;
        var PopupURL, URLParams;
        var theWindow

        PopupURL = POPUP_FNAME;
        theWindow = window.open(PopupURL, POPUP_NAME, POPUP_FEATURES);
        theWindow.focus();
        return theWindow;
    }

那么是否有办法可以随时打开新窗口而不是重复使用相同的打开页面?非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

  

如果名称的窗口已存在,则strUrl将加载到现有窗口中。在这种情况下,方法的返回值是现有窗口,并忽略strWindowFeatures。为strUrl提供空字符串是一种通过名称获取对打开窗口的引用而无需更改窗口位置的方法。要在每次调用window.open()时打开一个新窗口,请为strWindowName使用特殊值_blank。

     

window.open

var POPUP_NAME = "_blank"

还要从文档中注意到窗口名称不是标题。要设置你要做的标题

theWindow.document.title = "NewViewWindow"

答案 1 :(得分:0)

而不是固定的POPUP_NAME,您可以使用随机字符串或更好地使用当前时间戳作为Date.now()

所以它看起来像

theWindow = window.open(PopupURL, `win${ Date.now() }`, POPUP_FEATURES);