我使用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)
)
)
}