如何在多个浏览器窗口中从现有页面拆分DOM?

Joh*_*son 6 html javascript jquery dom

我希望能够从现有页面获取DOM结构,然后在不同的浏览器窗口中分隔某些元素.这样做时,我希望在每个浏览器窗口中保留相同的会话.这可能吗?如果是这样,怎么会这样做呢?

为了更清楚,这里是一个如何使用它的示例:

1)我登录网站并创建会话.

2)该网站在页面上有各种小部件.我需要使用的一些小部件,有些则不然.而不是通过CSS隐藏我不需要的那些,我宁愿将我需要的那些提取到单独的窗口中.然后,我可以根据需要在我的桌面上安排这些单独的小部件窗口.

有什么办法吗?谢谢.

the*_*472 6

我想在每个浏览器窗口中保留相同的会话.

DOM不会维护会话.它们存在于cookie中,也可能是javascript状态.

我希望能够从现有页面获取DOM结构,然后在不同的浏览器窗口中分隔某些元素.

有两个选项,DOM节点可以直接从一个文档移植到adoptNode,但是需要在不同的javascript全局上下文之间直接访问,这只能通过frames或window.opener获得,即当一个窗口直接产生另一个窗口时.请注意,这只会移动DOM节点,而不是任何与它们关联的状态或侦听器.

另一种方法是将它们序列化为HTML或XML,并通过各种通信机制(如postMessage通道)将序列化的表单发送到另一个窗口.

既然你说小部件,我想有一些javascript与他们相关联.当你跨越窗口边界​​移动DOM节点本身时,必须重写javascript以跨越窗口边界​​进行通信.

如果您的前端实现为MVC或类似模式,您应该将模型移动到不同的窗口并重新实现视图而不是直接移动dom.