問題タブ [javascript-interop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Blazor でクライアント側 UI イベントを実行する方法
私は Blazor をいじり始めたばかりですが、この新しいフレームワークの大きな可能性をすでに理解しています。
しかし、入力コントロールにフォーカスを設定するなどの簡単なことをどのように処理するのでしょうか? たとえば、クリック イベントを処理した後、フォーカスをテキスト入力コントロールに設定したいと考えています。そのようなことには JQuery を使用する必要がありますか、それとも Blazor にはそのようなことのための組み込みメソッドがありますか?
ありがとう
更新: .Net コードから JavaScript 関数を呼び出してコントロールにフォーカスを設定する方法の例を以下の回答に投稿しました。
現在 (Blazor 0.9.0) では、JavaScript 関数を Index.html で作成 (または Index.html から参照) し、Blazor ページまたはコンポーネントで JsRuntime.InvokeAsync("functionName", parms); を呼び出します。
https://docs.microsoft.com/en-us/aspnet/core/razor-components/javascript-interop
reactjs - JavaScript 相互運用機能を使用して JavaScript ライブラリをインポートし、React アプリを Blazor アプリに移植する
現在、Blazor WebAssembly アプリに変換しようとしている React アプリがあります。React アプリには、JavaScript ライブラリをインポートするコンポーネントがあり、そのサンプル コードはこちらで確認できます。インポートされたcharting_library
コード自体は、アクセス権が付与されていないとアクセスできませんが、この質問に答える上で問題になることはありません。
私の React アプリには、サンプル コードに従って、次のコードがあります (簡潔にするために省略しています)。
Blazor componentsとBlazor JavaScript interopについて読みcharting_library
、React アプリと同じように Blazor で使用している JavaScript を使用するために、JavaScript 相互運用機能を備えたコンポーネントを実装しようとしました。そのため、の指示に従ってIJSRuntime
、charting_library
JavaScript コードを下wwwroot
に追加し、以下を に追加しましたindex.html
。
次に、単純な Blazor コンポーネント ( Components\TradingViewChartComponent.razor
) を作成しましたが、これがこれを行う方法だと思いますが、完全に間違った道を進んでいると強く感じています。
でこのコンポーネントをどのように使用するかも明確ではありませんIndex.razor
。次の場合はエラーになります。
エラーは次のとおりです。
「予期しない名前 'TradingViewChartComponent' のマークアップ要素が見つかりました。これがコンポーネントであることが意図されている場合は、その名前空間に @using ディレクティブを追加してください。」
そして、テンプレートのサンプル ファイルを参照しますSurveyPrompt.razor
。接続がどのように行われるかはわかりませんが、残りのコードがビルドされると、これは自動的に解決されるのでしょうか? 「「jquery」の型定義ファイルが見つかりません」など、jQueryに関連する他のエラーが発生するため、そうではありません。これは、Visual Studio React アプリケーション テンプレートの一部として使用されたコードが jQuery などの必要な依存関係を追加するcharting_library
ため、React アプリでは問題にならないと私が推測するコード自体の中にあります。create-react-app
では、Blazor アプリでこのような依存関係を確保するにはどうすればよいでしょうか?
ここでの主な質問は、React アプリで使用したのと同じ方法で、Blazor アプリで JavaScript ライブラリを使用する方法です。Blazor コンポーネントを含めIndex.razor
たり、jQuery エラーが発生したりするなどの追加の問題は、個別に回答できる場合はここで回答する必要のないおまけの質問です (個別の質問を作成してもかまいません)。
誰でもできる助けをありがとう!C# と React には精通していますが、Blazor は初めてで、JavaScript の知識は限られています。
javascript - c# インジェクト サービスへの Blazor サーバー Javascript Websocket コールバックが機能しない
注入されたサービスを呼び出して JavaScript で Web ソケットを呼び出してデータを取得する blazor サーバー アプリがあります。Web ソケットがデータをサービスの ac# インスタンス コールバックに返すようにします。c# コールバックは、javascript メソッドからは正常に機能しますが、websocket コールバック (onmessge、onerror、onclose など) からは正常に機能しません。エラーはありません。データがありません。
インスタンスをグローバル javascript にしようとしましたが、呼び出し元のクラスで静的な値を作成しようとしましたが、まだ機能しません。私は最後までグーグルで検索し、すべての提案を試しましたが、まだ運がありません.
ここにインデックスページがあります:
サービス:
ジャバスクリプト:
これを ConfigureServices のスタートアップに追加する必要があります。
_Hosts.cshtml に次を追加する必要があります。
編集:挿入されたサービスなしでこれを試すと機能します(呼び出しとコールバックをかみそりのページに配置します)。うーん。