我使用Page.scala
来启动Scala.js应用程序的客户端。因此Page.scala
取代了index.html。 Scalatags raw
函数允许包含实际的JavaScript。在Scalatags文档中,示例是alert('Hello!')。我确实有一点JavaScript可以解决浏览器的问题,但是会说“你好!”一开始就很好。 JavaScript本身是get_browser_info()
函数here。从Scala.js调用Javascript
所以我的问题是,我可以从Scala代码中调用这一点JavaScript吗?这是一个明智的方式去发现用户正在使用的浏览器吗?我想将这些信息发回服务器。
当然我可以将函数翻译成Scala,但检查浏览器的JavaScript对我来说并不那么容易阅读 - 我从来不是JavaScript程序员。
翻译会很棒,即使它只会回答核心问题。
编辑 @sjrd给出了创业Scala代码的答案。为了让完整的图片,这是Page.scala的样子:
object Page{
val boot =
"simple.MyScalaClient().main(document.getElementById('contents'))"
val browserVersionFn = "<script>function get_browser_info(){var ua=navigator.userAgent ... version: M[1]};}</script>"
val skeleton =
html(
head(
meta(charset:="utf-8"),
script(src:= "/myappname/myappname-fastopt.js"),
link(
rel:="stylesheet",
href:="http://yui.yahooapis.com/pure/0.5.0/pure-min.css"
)
),
body(
style := "margin:30",
onload := boot,
div(id:="contents"),
raw(browserVersionFn)
)
)
}