有没有一种在elm中插入随机HTML / JS片段的好方法?

时间:2013-05-04 03:37:47

标签: elm

我想将以下代码段嵌入我正在编写的elm应用程序中:

<script src="https://gist.github.com/jpaugh/2988462.js"></script>

我尝试过使用[markdown|..|] quasi-quoter,

header = plainText "blah, blah."
gist = [markdown|
<script src='https://gist.github.com/jpaugh/2988462.js'></script>
|]

main = flow down [header, gist]

这会引发错误,明确代表Elm中的错误,并将我的所有内容放入<noscript>

<noscript>
  <p>blah, blah</p>
  <p><script src='https://gist.github.com/jpaugh/2988462.js'></script>
    </p>
</noscript>

但还有另一种方法吗?使用Markdown语法插入html代码段对我来说似乎不稳定。这是否由其中一个库函数覆盖?我应该如何将它与Elm自己的javascript隔离开来? (使用<iframe>似乎没有帮助。)

编辑:这是错误消息。这是显示在屏幕上的内容,而不是代码。

error msg

2 个答案:

答案 0 :(得分:4)

最好采取相反的方式:不要使用JS / CSS搞砸榆树的“域”,而是将elm嵌入普通HTML中:你可以在榆树盒之外做你想做的事情在外面运行你的JS:

http://elm-lang.org/blog/announce/version-0.8.elm#embedding-elm-in-html-and-js

但是我认为你可以在不使用任何javascript的情况下从Elm中的那个片段中获取内容,我不确定你最终想要实现的是什么。

答案 1 :(得分:4)

我这样做了,因为我很邪恶。

script' : List Attribute -> String -> Html
script' attrs s = node "script" attrs [ text s ]

分别基于HtmlHtml.Attributes。用法示例:

div [] [ script' [] "alert(tremble in fear elm);" ]

就是这样

script : List Attribute -> List Html -> Html
script attrs children = node "script" attrs children

scriptSrc : String -> Html
scriptSrc s = script [ type' "text/javascript", src s ] []

scriptRun : String -> Html
scriptRun s = script [ type' "text/javascript" ] [ text s ]