Elm:如何使用iframe

3
我想渲染一个给定字符串输入的iframe。例如,我有以下HTML字符串:
str = "<!DOCTYPE html><html><head></head><body>HELLO ELM</body></html>"

在JS中,我会通过在iframe上设置innerHtml来实现这一点。 目前,我只是试图让iframe渲染任何内容,但没有成功。我正在尝试这样的方法:
iframe 
    []
    [ body [] [ div [][text "hi"], div [][text "hi"] ] ] 

一旦我用HTML节点列表使其正常工作,我将开始让其处理字符串。我需要的是某种stringToHtml: String -> List Html方法。

有关在Elm中开始使用iframe的任何帮助或建议?

1个回答

7
你可以使用iframe的srcdoc属性来设置HTML字符串中的HTML,方法如下:
import Html exposing (..)
import Html.Attributes exposing (srcdoc)

main =
  div [ ]
    [ div [] [ text "Outside the iframe" ]
    , iframe
      [ srcdoc "<div>Inside the iframe</div>" ]
      []
    ]

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

不过,这种方法非常脆弱,因为它绕过了虚拟DOM。目前似乎没有其他方法可以在虚拟DOM中操作iframe内容。您的内容是否可以存储在另一页中,并通过iframe的src属性引用?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接