捕获键盘输入Websharper

Kha*_*zor 2 f# websharper

我想在Websharper中获取用户的键盘输入整个页面(或者任何让我最接近的东西),我看不出任何好的方法.

我尝试了一些类似的东西

JQuery.Of("document").Keyup(fun _ _ -> Window.Self.Alert("boo"))
Run Code Online (Sandbox Code Playgroud)

但是我经常遇到很多问题NotImplementedExceptions.这些真的没有实现吗?或者我是否会遇到一些奇怪的边缘情况,因为我要反对谷物?

更新:

我已经从nuget安装了2.4.85.235版本,如果这对任何人都有意义.我也在使用VS 2012.

我还使用VS 2010中的一个新的sitelets模板化网站进行了测试,我看到了同样的事情.我已经从WebSharper站点安装了最新的软件包.

Tah*_*aha 5

确保您没有调用服务器上未实现的客户端方法.如果是单独的客户端和服务器代码,则显示所涉及的元素并通过Web控制机制调用JavaScript,并使用"html","body"或Dom.Document.Current作为选择器.以下是每次按下回车键时显示警报的示例:

module Client =

    open IntelliFactory.WebSharper
    open IntelliFactory.WebSharper.Html
    open IntelliFactory.WebSharper.JQuery

    [<JavaScriptAttribute>]
    let paragraph () =
        P [Text "Press the Enter key to display an alert box."]
        |>! OnAfterRender (fun x ->
            JQuery.Of("html").Keydown(fun _ event ->
                match event.Which with
                    | 13 -> JavaScript.Alert "Enter key was pressed."
                    | _  -> ()).Ignore)

    type ParagraphViewer () =
        inherit Web.Control()

        [<JavaScript>]
        override this.Body = paragraph () :> _
Run Code Online (Sandbox Code Playgroud)