dwz navtab 限制打开数量实例
openTab: function(tabid, url, options){ //if found tabid replace tab, else create a new tab.
    var op = $.extend({title:"New Tab", data:{}, fresh:true, external:false}, options);
    //这里判定如果未加载该 navtab 并且超出最大允许的navtab数量
    if( navTab._getTabs().length > 4 )
    {
      //如果未加载过,或者已在main里面显示的
      if( navTab._indexTabId(tabid) < 0 )
      {
        navTab._getTabs().eq(0).attr('true_tabid',tabid);
        tabid = 'main';
      }
    }
    else
    {
      var real_tabid = navTab._getTabs().eq(0).attr('true_tabid');
      if( real_tabid && real_tabid == tabid )
      {
        tabid = 'main';
      }
    }
    var iOpenIndex = this._indexTabId(tabid);
    if (iOpenIndex >= 0){
      var $tab = this._getTabs().eq(iOpenIndex);
      var span$ = $tab.attr("tabid") == this._op.mainTabId ? "> span > span" : "> span";
      $tab.find(">a").attr("title", op.title).find(span$).text(op.title);
      var $panel = this._getPanels().eq(iOpenIndex);
      if(op.fresh || $tab.attr("url") != url) {
        $tab.attr("url", url);
        if (op.external || url.isExternalUrl()) {
          $tab.addClass("external");
          navTab.openExternal(url, $panel);
        } else {
          $tab.removeClass("external");
          $panel.ajaxUrl({
            type:"GET", url:url, data:op.data, callback:function(){
              navTab._loadUrlCallback($panel);
            }
          });
        }
      }
      this._currentIndex = iOpenIndex;
    } else {
      var tabFrag = '<li tabid="#tabid#"><a xhref="javascript:" title="#title#" class="#tabid#"><span>#title#</span></a><a xhref="javascript:;" class="close">close</a></li>';
      this._tabBox.append(tabFrag.replaceAll("#tabid#", tabid).replaceAll("#title#", op.title));
      this._panelBox.append('<div class="page unitBox"></div>');
      this._moreBox.append('<li><a xhref="javascript:" title="#title#">#title#</a></li>'.replaceAll("#title#", op.title));
      var $tabs = this._getTabs();
      var $tab = $tabs.filter(":last");
      var $panel = this._getPanels().filter(":last");
      if (op.external || url.isExternalUrl()) {
        $tab.addClass("external");
        navTab.openExternal(url, $panel);
      } else {
        $tab.removeClass("external");
        $panel.ajaxUrl({
          type:"GET", url:url, data:op.data, callback:function(){
            navTab._loadUrlCallback($panel);
          }
        });
      }
      if ($.History) {
        setTimeout(function(){
          $.History.addHistory(tabid, function(tabid){
            var i = navTab._indexTabId(tabid);
            if (i >= 0) navTab._switchTab(i);
          }, tabid);
        }, 10);
      }
      this._currentIndex = $tabs.size() - 1;
      this._contextmenu($tabs.filter(":last").hoverClass("hover"));
    }
    this._init();
    this._scrollCurrent();
    this._getTabs().eq(this._currentIndex).attr("url", url);
  }
修改 dwz/js/dwz.navTab.js
修改 openTab 方法
改为如下:
dwz navtab 限制打开数量实例的更多相关文章
- WPF 只允许打开一个实例
		
我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开. 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭.也就是是否存在另一个程序在运行. 下面是一个简单方 ...
 - 微信小程序之页面打开数量限制
		
无论是在小程序还是APP中,打开一个页面其实就是创建了一个新的View对象,一层层叠加的.当点击页面的回退按钮就是把当前页面关闭. 这个过程中会涉及到一个问题,就是打开页面的数量.在某些设计下,比如一 ...
 - 2018-2-13-WPF-只允许打开一个实例
		
title author date CreateTime categories WPF 只允许打开一个实例 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:2 ...
 - linux 修改文件打开数量限制
		
1.查看打开文件数量限制 ulimit -a ulimit -n 2.临时修改 ulimit -n 2048 3.永久修改 vi /etc/security/limits.conf 追加 * soft ...
 - VB.NET只允许打开一个实例
		
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) ...
 - linux打开文件数量的查看方法
		
linux打开文件数量的查看方法 linux打开文件数量的查看方法在网上查到两种查看linux打开文件数量的查看方法,但结果不相同,linux查看文件打开数量是以那个文件或命令为标准呢? 搜索过关于u ...
 - Oracle实例和Oracle数据库(Oracle体系结构)
		
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
 - 【转载】Oracle实例和Oracle数据库(Oracle体系结构)
		
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:Leshami 原文地址:http://blog.csdn.net/ ...
 - DWZ使用笔记
		
DWZ使用笔记 一.前言 在最近的一个项目中,引入了DWZ这个富客户端框架,算是一次尝试吧.期间也遇到不少问题,总算一一解决了.特以此文记之. 本人用的是dwz-ria-1.4.5+A ...
 
随机推荐
- 一步一步学习IdentityServer3 (13) 令牌
			
IdentityServer3中客户端保护了授权资源,不难看出在IdentityServer3中,有这样一个设置 AllowedScopes = new List<string> { &q ...
 - day9--paramiko模块
			
志不坚者智不达 paramiko:在Linux链接其他机器,每台Linux机器都有一个SSHClient:Python自己也写了一个SSHClient,那么Python写paramiko创建SSHCl ...
 - 【LOJ】 #2305. 「NOI2017」游戏
			
题解 枚举x所在的地图的颜色,然后2-SAT建边 如果v所在的地图刚好是不能选的,那么u这边只能选另一种颜色 否则就是u的颜色到v的颜色 v的另一种颜色到u的另一种颜色 代码 #include < ...
 - codeforces 354 D. Transferring Pyramid
			
D. Transferring Pyramid time limit per test 3 seconds memory limit per test 256 megabytes input stan ...
 - Gitlab Webhooks, External Services, and API(一)
			
一. 和外部服务进行集成 Gitlab支持和不同的外部服务进行集成,比如可以和聊天工具,Slack或者Campfire进行集成,或者和项目管理工具进行集成.如Assembla或者Pivotal Tra ...
 - css盒子垂直居中
			
首先父盒子包住子盒子 <body> <div class="outbox"> <div class="box"></d ...
 - 开始Hibernate介绍
			
1.介绍 一个框架 一个Java领域内的持久化框架 一个ORM框架 2.持久化 和数据库相关的各种操作 保存 更新 删除 查询 加载:根据特定的OID,把一个对象从数据库加载到你内存中. OID:为了 ...
 - IOS 本地推送
			
// 1.打开本地推送并设置属性 NSString *str = @"本地推送的信息"; UIApplication *app = [UIApplication sharedApp ...
 - 20169211《linux内核原理与分析》第七周作业
			
1.教材内容学习总结 2.实验报告 3.学习总结 一.教材内容学习总结 在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享 ...
 - 源码之Java集合
			
No1: ArrayList的扩容策略是,新容量扩大为原来的1.5倍. ArrayList不是线性安全的,因为没有使用synchronized关键字,但是优点是效率提高了.与之相比,Vector是线性 ...