F# 捕获键盘输入Websharper

F# 捕获键盘输入Websharper,f#,websharper,F#,Websharper,我想在Websharper中获得用户对整个页面的键盘输入(或任何与我最接近的内容),但我看不到任何好的方法 我尝试了一些类似于 JQuery.Of("document").Keyup(fun _ _ -> Window.Self.Alert("boo")) 但我一直遇到许多未实现的异常。这些措施真的没有实施吗?还是因为我违反了规则,我碰到了奇怪的边缘案例 更新: 我已经从nuget安装了2.4.85.235版,如果这对任何人都有意义的话。我也在使用VS 2012 我还测试了VS2010的

我想在Websharper中获得用户对整个页面的键盘输入(或任何与我最接近的内容),但我看不到任何好的方法

我尝试了一些类似于

JQuery.Of("document").Keyup(fun _ _ -> Window.Self.Alert("boo"))
但我一直遇到许多
未实现的异常。这些措施真的没有实施吗?还是因为我违反了规则,我碰到了奇怪的边缘案例

更新:

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


我还测试了VS2010的一个新的sitelets模板站点,我看到了同样的情况。我已从WebSharper站点安装了最新的软件包。

请确保您没有调用服务器上未实现的客户端方法。如果是这种情况,请将客户端和服务器代码分开,显示相关元素并通过Web控制机制调用JavaScript,并使用“html”、“body”或Dom.Document.Current作为选择器。以下是每次按下enter键时显示警报的示例:

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 () :> _
模块客户端=
打开IntelliFactory.WebSharper
打开IntelliFactory.WebSharper.Html
打开IntelliFactory.WebSharper.JQuery
[]
让第()段=
P[文本“按回车键显示警报框”。]
|>! OnAfterRender(有趣的x->
JQuery.Of(“html”).Keydown(有趣的事件->
比赛项目。哪一项与
|13->JavaScript.Alert“按下回车键”
|(->())。忽略)
类型段落查看器()=
继承Web.Control()
[]
覆盖此。正文=段落():>_

这三个选择器都会抛出一个
NotImplementedException
。您似乎在调用服务器上未实现的客户端方法(本例中为jQuery)。显示所涉及的元素并使用Web控制机制调用JavaScript。你介意用你的意思的样本更新你的答案吗?好的,对于大量使用jQuery的较大样本,你可以检查一下。