【问题标题】:Replace the HTML DOM completely with another DOM用另一个 DOM 完全替换 HTML DOM
【发布时间】:2020-11-19 17:05:46
【问题描述】:

我想用另一个 HTML 文档或另一个 DOM 替换浏览器中的一个 HTML 文档而不更改 document.location

可以使用 JavaScript 吗?

【问题讨论】:

  • document.innerHTML = ...
  • @Barmar 它不起作用。
  • document.body.innerHTML = "new contents" 呢?

标签: javascript html dom browser


【解决方案1】:

不,您不能通过导航以外的任何其他方式更改窗口的 document 属性(如果是 opened 窗口或 <iframe> 的窗口来自 about:blank)。

https://html.spec.whatwg.org/multipage/window-object.html#concept-document-window

【讨论】:

  • 同时替换<body><head> 怎么样?它会起作用吗?我还需要考虑什么?
  • 即使您更改了文档中的所有内容,它也不会将 window.document 更改为另一个文档,这就是这个问题所要求的(例如,您不能从 HTMLDocument 更改为SVG 文档)。然后,如果您想要更改 Document 的 content ,那么请确保您可以删除其中的任何节点并将其替换为任何其他节点(嗯,HTMLDocument 只能将 doctype 节点作为直接子节点, head 和 body 元素以及注释节点。
  • 我认为问题是关于替换文档的内容,而不是创建新的文档对象。
  • @Barmar 这不是问题中写的...
  • @Kaiido 当然,人们在询问他们不是专家的问题时总是使用非常精确的术语。
猜你喜欢
  • 2013-05-15
  • 2013-04-17
  • 2021-07-30
  • 2016-06-28
  • 2016-05-10
  • 2021-09-08
  • 2016-09-17
  • 1970-01-01
  • 2021-08-30
相关资源
最近更新 更多