JavaScript中的“远程控制链接”

时间:2014-04-20 02:52:02

标签: javascript

想象一下,在mysite / includes / popups.php中查看网页@ mysite2 / world并打开JavaScript弹出窗口。弹出窗口具有以下链接:

<a href="javascript:;" onclick="opener.location='http://www.mysite2.com/world/canada'">Canada</a>

单击弹出窗口中的链接时,MAIN PAGE(mysite2 / world)将转发到mysite2 / world / canada。弹出窗口挂起,等待您点击类似的链接。

当弹出窗口的链接如下所示时,这一切都有效:

<a href="javascript:;" onClick="MM_openBrWindow('http://www.mysite.com/includes/popups.php?values=px|na','na','[insert popup attributes here]')">popup</a>

然而,我发现了一个新的脚本,它取消了onClick的东西。我的链接现在看起来像这样:

<a href="http://www.mysite.com/includes/popups.php?values=px|na" rel="popup standard 200 200">North America</a>

弹出窗口应该打开,但是当我点击一个链接(例如/ world / canada),而不是将主页面转发到mysite2 / world / canada时,它会将它转发到网站的主页。所以它的工作意义在于它强制主页面到不同的URL - 而不是我希望它去的URL。

有谁知道如何修改我的脚本以重新启用“远程控制”链接转发?我显然需要删除对onclick的引用,但我不知道用什么来替换它。

P.S。这是我头部的代码:

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

0 个答案:

没有答案