关闭非固定标签页或非活动标签页新方法,更加便捷实用
本帖最后由 妄想社成员 于 2023-1-14 16:51 编辑之前的办法,虽然效果很完美,但架不住命令太复杂繁琐,是我绕了个大弯实现的,
运行中每次打开标签页都会执行非常多的命令,难免怀疑会拖慢系统速度。
如图,需要很多麻烦的命令一同组合才能实现效果,其中应用到的标签页的api只有一个closed的关闭api,发掘潜力其实还很大。
昨天晚上研究能不能固定一个标签页,随着一个又一个的思路行不通,翻看标签页源码的时间也越来越长,我察觉到了一个被经常使用的api,
refreshTabTitle(uid,pagename)
这个api的名字虽然是刷新标签页标题的意思,但测试了一下效果其实是刷新标签页头部,根据tabList重新生成了头部的dom结构
所以昨天的固定标签页功能使用这个api也顺利实现了。
回过头,我也想能否在这个的基础上再实现一次关闭其他所有标签页,不需要活字格命令参与,只需调用一个函数即可的那种!
尝试中也在再次意识碰壁到,这个插件中tabList的遍历操作有限制,各种循环遍历和递归都试了一遍,都不行。。。
最后实现了,采用简单的对象深拷贝实现!
下附上demo,效果为标签页的固定与关闭其他所有标签页。
只需在母版页按钮上执行一个js函数即可,再无须在其他地方添加各种命令!
**** Hidden Message *****
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);
};
---------------------------------------------------------------------------------------------------------------
往期精彩回顾:
简易商城实现:活字格简易商城链接
一键关闭标签页实现:一键关闭非当前标签页
单标签页刷新:单标签页单独刷新
道德清单自律应用实现:道德清单应用
学习,看看是怎么实现的:):):) 学习了:):) 顶楼主啦..希望楼主多发精品好帖啦..... 666666666666 1111111111111111 感谢分享,活字格的潜力无穷无尽 顶楼主啦..希望楼主多发精品好帖啦..... 66 下附上demo,效果为标签页的固定与关闭其他所有标签页。