网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

使用window.open切换到之前打开过的新页面

使用window.open打开页面,不刷新已经打开过的页面

我的思路是:把已经打开过的页面的title和window对象存起来,如果要打开的页面的title已经存在了,就直接foucs到已存在的页面window对象,不新调用open函数。

创新互联是一家以成都网站建设、网页设计、品牌设计、软件运维、网站推广、小程序App开发等移动开发为一体互联网公司。已累计为成都工商代办等众行业中小客户提供优质的互联网建站和软件开发服务。

  var iframeWin = [];
    $("#btn-open-in-new-win").on("click",function () {
        var iframe =  $(".iframe-box:visible iframe");
        if(!iframe.length)
            return;
        var id = $(iframe).contents().find("title").html();
        var win = iframeWin.search(id,['id'],true);
        if(!win.length){
            win = window.open(iframe[0].src,id);
            iframeWin.push({id:id,win:win});
        }
        else if (win[0].win.closed) {
            iframeWin.removeIfExited({id:id},['id']);
            win = window.open(iframe[0].src,id);
            iframeWin.push({id:id,win:win});
        }else{
            win[0].win.focus();
        }
    });

之前写的js数组方法

/**
 *在数组中查找值
 * value: 值 或 值数组
 * props: 对象数组的属性名称数组,属性名称,不可以为null
 * isEquals 是否不是匹配,而是相等
 */
Array.prototype.search = function(value, props, isEquals) {

    var len,results= [];
    if(value && value instanceof  Array){
        var resultsArr = [],resultsTemp;
        len = value.length;
        if(!len){
            return this;
        }
        for (var i = 0; i < len; i++) {
            resultsTemp = this.search(value[i],props,isEquals);
            for (var j = 0; j < resultsTemp.length; j++) {
                resultsArr.push(resultsTemp[j]);
            }
        }
        return resultsArr;
    }

    if (value == false) {
    } else if (null == value || "" == value)
        return this;
    len = this.length;
    var prop;
    for (var i = 0; i < len; i++) {
        if (props) {
            for (var j = 0; j < props.length; j++) {
                prop = this[i][props[j]];
                if (isEquals) {
                    if (prop == value) {
                        if (value == false && prop + "" == "") {
                            continue;
                        }
                        results.push(this[i]);
                        break;
                    }
                } else if (prop && (prop + "").indexOf(value) != -1) {
                    results.push(this[i]);
                    break;
                }
            }
        } else {
            for ( var j in this[i]) {
                if (j && (j + "").indexOf(value) != -1) {
                    results.push(this[i]);
                    break;
                }
            }
        }
    }
    return results;
};

/**
 *在数组中移除值
 * obj: 值或对象
 * prop: 对象数组的属性名称 用作判断数组中是否存在属性为prop的obj对象;可以为null,为null是认为数组obj为基本数据类型
 */
Array.prototype.removeIfExited = function(obj, prop) {
    var len = this.length;
    for (var i = 0; i < len; i++) {
        if (prop && (this[i][prop] === obj[prop])) {
            this.splice(i, 1);
            return true;
        } else if (this[i] === obj) {
            this.splice(i, 1);
            return true;
        }
    }
    return false;
};

当前名称:使用window.open切换到之前打开过的新页面
路径分享:http://bjjierui.cn/article/pjepds.html

其他资讯