繁体   English   中英

显示多个弹出窗口

[英]Displaying Multiple Popups

我有一些如下所示的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>

他们工作正常,但是我升级到了一个更轻便的新脚本,并且应该更加用户友好。 我的网址现在看起来像这样:

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

只有一个问题。 我只是发现我现在一次只能打开一个弹出窗口。 使用原始脚本,我可以打开任意数量的弹出窗口。 我尚未检查所有浏览器,但新脚本将我限制为Firefox和Safari中的一个弹出窗口。

您是否知道是否可以修改脚本,以便打开多个弹出窗口?

我猜测问题(可能是解决方案)是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);

(第二个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;}}

谢谢。

我的猜测是您的弹出式打开函数始于调用closeWin()的事实。 尝试在函数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