如果您尝试将Elm.embed
与div
以外的元素一起使用,则会出现此错误:
Elm.node必须给予DIV,而不是BODY。
我可以在源代码中看到this fairly explicitly。我想了解为什么存在这种限制。例如,为什么我无法在我的body
标记中嵌入Elm?
答案 0 :(得分:2)
当你使用Elm.embed
时,你说“我正在完全控制这个元素的内容到这个Elm模块”。尝试将其嵌入body
与使用Elm.fullscreen
(other ways之一运行Elm应用程序)相同。
至于为什么你不能嵌入任何其他标签(比如一个<span>
或<p>
标签),我猜测它只是在语义上正确并避免任何奇怪的行为。 <div>
只是“定义文档中的部分”的块元素。 <span>
标签具有相似的语义(“定义文档中的一个部分”),但不是块元素(将此Elm模块显示为内联元素意味着什么?)。 <p>
标记是一个块元素,但是用于保存一段文本。如果您尝试嵌入<canvas>
或<iframe>
元素,甚至会发生什么?您可以通过确保嵌入应用的元素是div
来避免所有这些。