Vue 或者 Js 如何做到像浏览器一样拖拽标签页把标签页变成一个独立窗口并保留标签页原来的数据?

2022-05-10 15:09:29 +08:00
 Nieve
2576 次点击
所在节点    Vue.js
13 条回复
IceBay
2022-05-10 15:18:07 +08:00
iframe 应该是最简单的。
codehz
2022-05-10 15:42:09 +08:00
vanilla 里可以直接用 appendChild 等方式移动元素在 dom 树里的位置
(当然你要原生窗口的话就麻烦了
cangcang
2022-05-10 19:37:44 +08:00
生成一个新的独立窗口,把数据传进去,再把标签页销毁。
liuzhaowei55
2022-05-10 19:51:02 +08:00
浏览器数据存储 indexeddb 然后新开标签重新把数据加载出来,看 3 楼回答想到的
Opportunity
2022-05-10 22:23:26 +08:00
@codehz 其实可以操作原生窗口,就是很难弄对

child = window.open('about:blank')
child.document.body = window.child.document.body

custom elements 的 adoptedCallback 不就是干这个的
duduaba
2022-05-11 11:12:14 +08:00
前端就是你永远也想不到客户有什么奇葩的需求。
Nieve
2022-05-11 13:49:04 +08:00
@IceBay 已修改描述
Nieve
2022-05-11 13:49:11 +08:00
@codehz 已修改描述
Nieve
2022-05-11 13:49:16 +08:00
@cangcang 已修改描述
Nieve
2022-05-11 13:49:21 +08:00
@liuzhaowei55 已修改描述
Nieve
2022-05-11 13:49:31 +08:00
@Opportunity 已修改描述
cangcang
2022-05-12 11:01:19 +08:00
hchow
2022-05-12 17:10:52 +08:00
vue3 Teleport 组件传送门感觉可以做: https://staging-cn.vuejs.org/guide/built-ins/teleport.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/851982

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX