2017-07-26 49 views
0

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

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

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; 
    } 

那么,有没有办法让一个新的窗口总是可以打开,而不是重用相同打开网页的?任何帮助是极大的赞赏!

回答

1

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

window.open

var POPUP_NAME = "_blank" 

也从窗口名称是不是标题文档注意。要设置标题,你会做

theWindow.document.title = "NewViewWindow" 
0

而不是一个固定的POPUP_NAME你可以使用一个随机字符串的或更好的只是使用当前时间戳Date.now()

因此,这将是这个样子

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