2

Websharperのユーザーのキーボード入力をページ全体(または私に最も近いもの)で取得したいのですが、これを行うための良い方法がわかりません。

私はの線に沿って何かを試みました

JQuery.Of("document").Keyup(fun _ _ -> Window.Self.Alert("boo"))

しかし、私はたくさんに遭遇し続けNotImplementedExceptionsます。これらは本当に実装されていませんか?それとも、私は穀物に反対しているので、奇妙なエッジケースにぶつかっていますか?

アップデート:

nugetからバージョン2.4.85.235をインストールしました。これは、だれにとっても意味があります。私もVS2012を使用しています。

また、VS 2010の新しいサイトレットテンプレートサイトでテストしましたが、同じことがわかります。WebSharperサイトから最新のパッケージをインストールしました。

4

1 に答える 1

5

サーバーに実装されていないクライアント側のメソッドを呼び出していないことを確認してください。その場合は、クライアント コードとサーバー コードを分離し、関連する要素を表示し、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 () :> _
于 2012-10-28T09:58:26.530 に答える