榆树:如何使用iframe

时间:2015-12-31 00:58:56

标签: elm

我希望在给定iframe输入的情况下呈现String。例如,我有一些像这样的HTML字符串:

str = "<!DOCTYPE html><html><head></head><body>HELLO ELM</body></html>"

在JS中我会通过在innerHtml上设置iframe来实现此目的。

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

iframe 
    []
    [ body [] [ div [][text "hi"], div [][text "hi"] ] ] 

一旦我开始使用HTML节点列表,我将继续使用字符串。我正在寻找的是某种stringToHtml: String -> List Html方法。

有关elm中iframe入门的任何帮助或建议吗?

1 个答案:

答案 0 :(得分:4)

您可以使用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属性引用吗?