我希望在给定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入门的任何帮助或建议吗?
答案 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
属性引用吗?