找回密码
 立即注册

QQ登录

只需一步,快速开始

妄想社成员 活字格认证

高级会员

72

主题

389

帖子

1781

积分

高级会员

积分
1781

时代开发者征文活动活字格认证圣诞拼拼乐

QQ
妄想社成员 活字格认证
高级会员   /  发表于:2023-1-14 16:49  /   查看:6320  /  回复:45
本帖最后由 妄想社成员 于 2023-1-14 16:51 编辑

之前的办法,虽然效果很完美,但架不住命令太复杂繁琐,是我绕了个大弯实现的,

运行中每次打开标签页都会执行非常多的命令,难免怀疑会拖慢系统速度。

image.png212090758.png image.png271125792.png


如图,需要很多麻烦的命令一同组合才能实现效果,其中应用到的标签页的api只有一个closed的关闭api,发掘潜力其实还很大。


昨天晚上研究能不能固定一个标签页,随着一个又一个的思路行不通,翻看标签页源码的时间也越来越长,我察觉到了一个被经常使用的api,
refreshTabTitle(uid,pagename)

这个api的名字虽然是刷新标签页标题的意思,但测试了一下效果其实是刷新标签页头部,根据tabList重新生成了头部的dom结构

所以昨天的固定标签页功能使用这个api也顺利实现了。


回过头,我也想能否在这个的基础上再实现一次关闭其他所有标签页,不需要活字格命令参与,只需调用一个函数即可的那种!

尝试中也在再次意识碰壁到,这个插件中tabList的遍历操作有限制,各种循环遍历和递归都试了一遍,都不行。。。


最后实现了,采用简单的对象深拷贝实现!


下附上demo,效果为标签页的固定与关闭其他所有标签页。

只需在母版页按钮上执行一个js函数即可,再无须在其他地方添加各种命令!

游客,如果您要查看本帖隐藏内容请回复

var filterTab = function () {
  var inst = this.parent.TabManager.TabContainer.getCurrentInstance(window),
    t = inst.tabList,
    activeTab = inst.activeTab,
    newTabList = [];
  for (var i = 0; i < t.length; i++) {
    if (t.pageName == activeTab.pageName || t.canBeClosed !== true) {
      newTabList.push(t);
    }
  }
  this.parent.TabManager.TabContainer.getCurrentInstance(window).tabList =
    JSON.parse(JSON.stringify(newTabList));
  console.log("t", t);
  inst.refreshTabTitle(activeTab.uid, activeTab.pageName);
};



---------------------------------------------------------------------------------------------------------------

往期精彩回顾:

简易商城实现:活字格简易商城链接

一键关闭标签页实现:一键关闭非当前标签页

单标签页刷新:单标签页单独刷新

道德清单自律应用实现:道德清单应用




45 个回复

正序浏览
HAJK
注册会员   /  发表于:2024-3-14 15:05:58
46#
好好学习,天天向上
回复 使用道具 举报
503881523活字格认证
金牌服务用户   /  发表于:2024-2-25 00:42:59
45#
谢谢分享
回复 使用道具 举报
白菜
初级会员   /  发表于:2024-2-17 19:31:00
44#
厉害...........
回复 使用道具 举报
CainduranceTX
中级会员   /  发表于:2024-2-12 06:42:39
43#
这简直是无尽的知识库
回复 使用道具 举报
muto
金牌服务用户   /  发表于:2024-2-7 09:33:54
42#
感谢大佬分享!
回复 使用道具 举报
玉轩悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2024-2-7 08:29:42
41#
666
回复 使用道具 举报
馒头
金牌服务用户   /  发表于:2024-2-7 07:42:14
40#
666
回复 使用道具 举报
xyltk1973
中级会员   /  发表于:2024-2-7 06:50:23
39#
谢谢分享,学习
回复 使用道具 举报
bill88
注册会员   /  发表于:2024-2-5 21:56:16
38#
大神!我找这个功能好久了,下来看看能不能解决我的问题
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部