简体   繁体   English

显示多个弹出窗口

[英]Displaying Multiple Popups

I had some JavaScript popup links that looked like this: 我有一些如下所示的JavaScript弹出链接:

<a href="javascript:;" onClick="MM_openBrWindow('MySite/Aids/Popups/World.php?MySS=<?php echo $MySiteID.$PopParent; ?>','IRNA','scrollbars=yes,resizable=yes,width=175,height=250')">PopUp</a>

They worked OK, but I upgraded to a new script that's a little lighter and is supposed to be more user friendly. 他们工作正常,但是我升级到了一个更轻便的新脚本,并且应该更加用户友好。 My URL's now look like this: 我的网址现在看起来像这样:

<a href="MySite/Aids/Popups/World.php?MySS=<?php echo $MySiteID.$PopParent; ?>" rel="popup standard 150 400 noicon">PopUp</a>

There's just one problem; 只有一个问题。 I just discovered that I can now only open one popup at a time. 我只是发现我现在一次只能打开一个弹出窗口。 With the original script, I could open any number of popups. 使用原始脚本,我可以打开任意数量的弹出窗口。 I haven't checked all browsers, but my new script limits me to just one popup in Firefox and Safari. 我尚未检查所有浏览器,但新脚本将我限制为Firefox和Safari中的一个弹出窗口。

Do you know if there's a way to modify my script so I can open multiple popups? 您是否知道是否可以修改脚本,以便打开多个弹出窗口?

I'm guessing the problem (and presumably the solution) lies with JavaScript, not PHP, so here's the JS code: 我猜测问题(可能是解决方案)是JavaScript而不是PHP所致,因此这是JS代码:

var newWindow = null;

function closeWin(){
if (newWindow != null){
    if(!newWindow.closed)
        newWindow.close();
}
}

function popUpWin(url, type, strWidth, strHeight){

closeWin();

type = type.toLowerCase();

if (type == "fullscreen"){
    strWidth = screen.availWidth;
    strHeight = screen.availHeight;
}
var tools="";
if (type == "standard") tools = "resizable,toolbar=no,location=no,scrollbars=yes,menubar=no,width="+strWidth+",height="+strHeight+",top=0,left=0";
if (type == "life") tools = "resizable,toolbar=yes,location=yes,scrollbars=yes,menubar=yes,width="+strWidth+",height="+strHeight+",top=0,left=0";
if (type == "console" || type == "fullscreen") tools = "resizable,toolbar=no,location=no,scrollbars=no,width="+strWidth+",height="+strHeight+",left=0,top=0";
newWindow = window.open(url, 'newWin', tools);
newWindow.focus();
}

function doPopUp(e)
{
//set defaults - if nothing in rel attrib, these will be used
var t = "standard";
var w = "780";
var h = "580";
//look for parameters
attribs = this.rel.split(" ");
if (attribs[1]!=null) {t = attribs[1];}
if (attribs[2]!=null) {w = attribs[2];}
if (attribs[3]!=null) {h = attribs[3];}
//call the popup script
popUpWin(this.href,t,w,h);
//cancel the default link action if pop-up activated
if (window.event) 
{
window.event.returnValue = false;
window.event.cancelBubble = true;
} 
else if (e) 
{
e.stopPropagation();
e.preventDefault();
}
}

function findPopUps()
{
var popups = document.getElementsByTagName("a");
for (i=0;i<popups.length;i++)
{
if (popups[i].rel.indexOf("popup")!=-1)
    {
    // attach popup behaviour
    popups[i].onclick = doPopUp;
    // add popup indicator
    if (popups[i].rel.indexOf("noicon")==-1)
        {
        popups[i].style.backgroundImage = "url(pop-up.gif)";
        popups[i].style.backgroundPosition = "0 center";
        popups[i].style.backgroundRepeat = "no-repeat";
        popups[i].style.paddingLeft = "15px";
        }
    // add info to title attribute to alert fact that it's a pop-up window
    popups[i].title = popups[i].title + " [Opens in pop-up window]";
    }
}
}

addEvent(window, 'load', findPopUps, false);

(2nd JS file) (第二个JS文件)

function addEvent(elm, evType, fn, useCapture){if(elm.addEventListener){elm.addEventListener(evType, fn, useCapture);return true;}else if (elm.attachEvent){var r = elm.attachEvent('on' + evType, fn);return r;}else{elm['on' + evType] = fn;}}

Thanks. 谢谢。

My guess would be that the fact that your pop up opening function begins by calling closeWin() may be your problem. 我的猜测是您的弹出式打开函数始于调用closeWin()的事实。 Try removing the reference to closeWin() in the function popUpWin(url, type, strWidth, strHeight){ .... } and see if that helps. 尝试在函数popUpWin(url, type, strWidth, strHeight){ .... }删除对popUpWin(url, type, strWidth, strHeight){ .... } closeWin()的引用,看看是否有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM