問題タブ [jsni]

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.

0 投票する
1 に答える
955 参照

gwt - GWT で JSNI の助けを借りて mozImageSmoothingEnabled を使用する

Gecko 1.9.2 では、キャンバス要素に mozImageSmoothingEnabled プロパティが導入されました。このブール値が false の場合、スケーリング時に画像は滑らかになりません。このプロパティはデフォルトで true です。

このプロパティを GWT で使用したいと考えています。どうすれば実装できますか

JSNIを使用して?

0 投票する
1 に答える
1486 参照

java - GWT JSNI call アプレット メソッド

Java アプレットを GWT ページに追加し、アプレットのメソッドのいくつかを呼び出したいと考えています。これは、次のようにして JavaScript で可能です。

ただし、GWT で JSNI ネイティブ関数を使用して同じアイデアを実装しようとすると失敗します。基本的に、アプレット オブジェクトを見つけることができません。JSNI コードは次のとおりです。

注 1: 「ドキュメント」は JSNI から使用できる有効な名前ではないことはわかっています。代わりに $doc を使用します (説明)。これを eval() ステートメントでエンコードする方法がよくわからないため、コンパイラは $doc を適切な参照に置き換えます。また、生成された JavaScript には、ユーザーが指定したメソッド名と引数が含まれます。お気づきかもしれませんが、入力 Java 変数と Javascript を混在させることはできません (説明) 。

注 2: 次の JavaScript は、Web ブラウザーのアドレス バーから実行されます。

したがって、アプレットはページのドキュメント オブジェクトの下にあり、Javascript からアクセスできます。JSNIからはうまく機能していません。

注 3: GWT の HTML クラスをサブクラス化して、実際のアプレット タグをパネルに追加しています。次の行に沿って:

これを機能させるための助けをありがとう。

0 投票する
3 に答える
3243 参照

javascript - GWTコードからGoogleマップオブジェクトを追加するには?

GWT アプリケーションで Google マップを使用したいと考えています。問題は、gwt-maps API がサポートするのは Google Maps API バージョン 2 のみであり、通常のマップ API はバージョン 3 であるということです。したがって、基本的にやりたいことは、GWT コードから標準の js マップ ライブラリを使用することですが、これは機能しません。作業:

問題は、onModuleLoad が body.onload と同等ではないことにあると思われます。どう思いますか?

0 投票する
2 に答える
973 参照

java - JavascriptオブジェクトをJavaに保存する

私はJavaオブジェクトを持っており、その中に「Well-knowntext」の文字列によって定義された空間形状が存在します。GWT UIでこのオブジェクトにマウスオーバーすると、コードはこの文字列をJSNIを介してJavascriptに渡します。これにより、一連の解析が実行され、適切なBingMapsAPIシェイプが作成されます。

この単純化された例は、各状態が状態名とその周囲を定義する文字列を含むオブジェクトとして存在するマップアプリケーションです。UIで状態名をマウスオーバーすると、境界文字列が解析され、代表的な形状がマップ上に描画されます。

そのため、現在、私のコードは、ユーザーがオブジェクトの上にマウスを置くたびに、受け渡し、解析、および作成を行います。文字列を解析してオブジェクトを1回だけ作成する方法を探しています。できれば、作成済みの完全なJavascriptオブジェクト(Bing Mapsシェイプ)を元のJavaオブジェクト自体に保存します。これは確かに物事をスピードアップするはずだと思います-ユーザーがマウスを別のアイテムに移動するたびに、いくつかの非常に詳細なマップオブジェクトを解析して作成する必要がある場合、UIは遅く見え始めます。

この種のJavascriptオブジェクトをJavaオブジェクトに保存し、必要なときにいつでもJavascriptに戻すことはできますか?

私のJavaコード(GWT)では、JavascriptObjectを作成できますが、Microsoft.Maps.Polygonオブジェクトのようなものを保持するにはこれで十分ですか?

ありがとう!

0 投票する
1 に答える
1255 参照

java - Javascriptオーバーレイタイプを使用してJSON配列からオブジェクト配列を構築するにはどうすればよいですか?

私のJSON応答は、オブジェクトの配列です(たとえば、フォルダー)。Javascriptオーバーレイタイプを使用してFolderオブジェクトの配列を生成したいと思います。

私は次の方法を試しました:

そして使用法:

注:FolderはJavaScriptObjectを必要に応じて拡張します。

そして、私が得るエラー:

JSオーバーレイタイプを使用してオブジェクト配列を取得する正しい方法は何ですか?

0 投票する
2 に答える
4592 参照

javascript - GWT で div id にスクロールする方法

gwt アプリケーションが実行されている iframe を含む Web ページがあります。ウェブページには<div id="head">. iframe でスクロールすることはできません (意図された) ため、Web ページの高さは、たとえば 1000px です。一番下にボタンがあり、誰かがそのボタンをクリックしたときに(注:ボタンはgwtアプリケーションにあります)、一番上までスクロールしたいです。

つまり、iframe は親ウィンドウを強制的に上にスクロールする必要があります。次のようなjsni関数で試しました:

しかし、これはうまくいきませんでした。したがって、私の新しいアイデアは、div id「ヘッダー」までスクロールすることです。これを達成する方法を知っている人はいますか?

私はこのように試しました:

しかし、それは機能していないようです (JSNI の方法である必要があるため?)。

ご意見ありがとうございます。

0 投票する
1 に答える
1286 参照

javascript - JavaScriptObject の結果を SmartGWT の結果の HTML の特定の場所に追加する方法は?

外部の JavaScript ライブラリ (クライアント、サーバー、および共有と同じレベルのパブリック フォルダーに残したもの) から Javascript を実行する必要があります。その JavaScript の出力 (ChemDoodle JavaScript ライブラリによって生成されたキャンバス) が SmartGWT VLayout 内に表示される必要があります。最初に、javascript コードを HTMLFlow オブジェクトに追加してから、HTMLFlow を VLayout に追加しようとしましたが、HTMLFlow は Javascript コードを実行しません (生成された HTML を別のブラウザー ウィンドウにコピー アンド ペーストすると動作します)。私が現在試みているのは、JSOHelper.eval("java script code here") を使用して JavaScript コードを評価し、JavaScriptObject を生成することです。ただし、JavaScript の実行結果を VLayout 内に「配置」する方法がわかりません。

ただし、前述したように、HTMLFlow は >script\> ブロックを実行しないため、これは機能しません (ブール値の設定 setEvalScriptBlocks(true) は、HTMLFlow から呼び出された他の URL にのみ適用されます)。したがって、JSOHelper クラスを使用すると、次のことができます。

私はJSNIメソッドでそれを行う方法を理解しようとしていますが、そこからvLayoutを参照する方法がわかりません(javascriptで)。$doc と $win があることはわかっていますが、そこから vLayout (タブ内にあり、他のウィジェット内にあります) までの取得方法がわかりません。javascript に getElementByID メソッドがあることは知っていますが、vLayout の ID を取得する方法と、その DIV (推測) を描画されたキャンバスに関連付けて、そこに画像が表示されるようにする方法がわかりません。

そのjavascriptスニペットが実行され、結果(生成されたキャンバス)が必要な場所に表示されるようにする方法を教えてください(JSNIを使用するのが唯一の方法だと思います)。

ありがとう!

0 投票する
1 に答える
411 参照

javascript - 手書きの Javascript から GWT メソッドを呼び出す

GWT を使用して Web アプリケーションを構築しています。GWT で記述されたアプリ コアとやり取りする Javascript API を使用して、ユーザーがその機能を拡張できるようにしたいと考えています。基本的に、この JS API は、実際の仕事を行ういくつかの GWT 内部メソッドにマップされます。

したがって、これを達成するために、GWT JSNI の公式ドキュメントで、GWT からグローバル JS 変数を作成し、実際の G​​WT メソッドへの呼び出しを割り当てるトリックを読みました。次に、この変数を介して手書きの JS コードで呼び出しを行います。

残念ながら、私はそれを機能させることができませんでした(例には構文エラーが含まれていたので、テストさえされているかどうかわかりません)。さらに調査を行ったところ、このサイトで、呼び出しを行う匿名関数に JS var を割り当てる同様のソリューションが見つかりました。次のようになります。

このソリューションは有望に見えますが、機能させることができませんでした。「window.showMessage();」を実行すると 私の手書きの JS コードでは動作しません。私はこれらの問題を発見しました:

  • window.showMessage が作成されたようですが、DOM ツリーを調べて、変数に関数が含まれていることを確認したにもかかわらず、JS コンソールには関数ではないと表示されます。
  • 「ウィンドウ」を常に追加する必要があるようです。var は window オブジェクト内で作成されているためです。これは非常に懸念される問題です。ユーザーが関数を呼び出すたびにこのように書くことを強制するのは本当に面倒です。

これらの問題の解決策 (または、私がやろうとしていることを達成するための別のアプローチ) を知っている人がいれば、聞いてとても感謝しています。前もって感謝します。

0 投票する
1 に答える
245 参照

gwt - GWTのカスタムプラグインイベント

ブラウザプラグインをコーディングしました。'mycustomevent'のようなカスタムイベントを発生させます。これらのカスタムイベントをGWTに組み込む(つまり、リスナーを割り当てる)必要があります。これがGWTのプラグインクラスです。

これが私のビューに追加する方法です(私はgwtpを使用しています)。これは追加されており、ページで正しく機能しています。JSNIを使用してgwtからjs関数を呼び出すことができます。

プラグインから発生したイベントにハンドラーを割り当てることができる必要があります。プレゼンターで次のことができるようにしたいと思いますが、これまでのところ、接続することができませんでした。

上記はいくつかの追加のクラスに言及しています。MyCustomEventクラスを定義し、EventHandlerを拡張するMyCustomEventHandlerインターフェイスを定義し、HasHandlersを拡張するHasMyCustomEventHandlerインターフェイスを定義しましたが、それらをすべて接続しても何も得られません。簡潔にするためにそれらを省略しました。役立つ可能性のあるものを追加していただければ幸いです。

ベアJavaScriptでイベントリスナーを追加できます。

毎回イベントをキャッチし(foo()が呼び出されます)、イベントが発生していると確信しています。

PluginObjectクラスに以下を追加しようとしましたが、これは検索で見つけたものから推測したものです。動作していません。

ここでの適切なアプローチは何ですか?

0 投票する
1 に答える
814 参照

java - GWT アプリケーション内で ctr-z(元に戻す) と ctr-y(やり直し) をキャプチャする

私は GWT 2.3 に基づいた Web アプリケーションを作成しており、それに伴い、独自の取り消し機能とやり直し機能を作成しました。ユーザーが ctr-z または ctr-y を押すと、最後の変更が取り消されるかやり直されます。ページの任意の場所で発生する ctr-z および ctr-y キープレス イベントを効果的に検出し、独自の機能を実行させる方法です。