Elm:如何使用 iframe

arh*_*ins 3 elm

我想呈现iframe给定的String输入。例如,我有一些这样的 HTML 字符串:

str = "<!DOCTYPE html><html><head></head><body>HELLO ELM</body></html>"
Run Code Online (Sandbox Code Playgroud)

在 JS 中,我会通过innerHtml在iframe.

现在,我试图让iframe渲染任何东西,但没有成功。我正在尝试这样的事情:

iframe 
    []
    [ body [] [ div [][text "hi"], div [][text "hi"] ] ] 
Run Code Online (Sandbox Code Playgroud)

一旦我让它与 HTML 节点列表一起工作,我将继续使其与字符串一起工作。我正在寻找的是某种stringToHtml: String -> List Html方法。

在 elm 中开始使用 iframe 有什么帮助或建议吗?

Cha*_*ert 7

您可以使用srcdociframe的属性从 html 字符串设置 html,如下所示:

import Html exposing (..)
import Html.Attributes exposing (srcdoc)

main =
  div [ ]
    [ div [] [ text "Outside the iframe" ]
    , iframe
      [ srcdoc "<div>Inside the iframe</div>" ]
      []
    ]
Run Code Online (Sandbox Code Playgroud)

(IE 和 Edge 目前不支持,srcdoc但有一个polyfill)

但最终,这是一个相当脆弱的解决方案,因为它绕过了虚拟 DOM。目前,似乎没有其他方法可以在 Virtual DOM 中操作 iframe 内容。您的内容是否可以存储在另一个页面中并通过 iframesrc属性进行引用?