問題タブ [google-closure]

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 に答える
629 参照

javascript - Googleクロージャーライブラリを使用して分割パネルにURLを開く

このソリューションでは、他の JavaScript ライブラリではなく、Google クロージャ JavaScript ライブラリを使用する必要があります。

URL が読み込まれると、一方の側に iframe 内の URL のコンテンツが含まれ、もう一方の側にどのアクションが発生しているかに関するログ情報が含まれる分割パネルを動的に開きたいと思います。

以下は、Google クロージャ ライブラリを使用した分割パネルの一般的な設定ですが、iframe を追加してそのソースを現在のページ URL に設定する方法がわかりません。

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

autocomplete - Google Closure AutoCompleteBasic 使用時のテキスト ボックスの値が不完全です

フォームにあるいくつかのテキスト ボックスには、Google Closure の AutoCompleteBasic を使用しています。ユーザーがキーを 1 つまたは 2 つ入力した後にテキスト ボックスに入力し、矢印キーを使用してオートコンプリートの候補の 1 つを選択すると、テキスト ボックスの値は、フォームが完全にレンダリングされますが、ユーザーが入力したキーのように見えます。テキストボックス内のオートコンプリート単語のテキスト。document.getElementById(id_of_textbox).value を使用して値を取得します

  1. これは、オートコンプリートとテキスト ボックスの相互作用の予想される動作ですか?
  2. 最初の数回のキーストロークだけでなく、文字列全体を取得するにはどうすればよいですか? または、値を読み取る他の方法はありますか?
0 投票する
1 に答える
1250 参照

javascript - Google Closure を使用した Ajax 呼び出し

私は Google Closure ライブラリが初めてで、Jquery の $.ajax 関数に似たものをシミュレートしようとしています。これが私が試したことと私が得たものです。

トリガーはChrome拡張機能からです 右クリック

これにより、以下のように定義された fun1 関数がトリガーされます。

getAjaxData 関数は以下のとおりです。

しかし、getAjaxData 関数を呼び出すと、このエラーが発生します。

どこが間違っているのか誰にでも教えてもらえますか.. xhrio.send 関数に渡す必要がある引数の型を確認しましたが、文字列型です。

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

ajax - IE での Google Closure XhrIo の問題

次のコードは IE では機能しません。tryブロックを追加した後、警告が表示されError: Could not complete the operation due to error c00ce56e.ます。

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

javascript - Google Closing Library を使用してイベントの伝播を防ぐ

Google Closure Library の使用:

elementたとえば a のクリックを処理する方法はありますが、ユーザーがその要素の子要素をクリックしdivたときに発生しないようにするにはどうすればよいですか。event handler

たとえば、次のコードではevent handler、ユーザーがクリックdiv1したときに を起動したいのですが、ユーザーが「span1」をクリックしたときにevent handler、 のハンドラーを起動せずに別のコードを呼び出したいとしますdiv1

アップデート

JS コード:

HTML コード:

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

javascript - Google クロージャー Ajax コンテンツ

XHRresponseTextの HTML コンテンツを表示DIVし、その<script>タグを削除してタグに追加するにはどうすればよいheadですか? (Google クロージャーを使用)

Prototype JSのextractScriptsのようなもの。

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

json - 高度なモードで Google Closure を使用したサードパーティの JSON?

JSON プロパティの名前を変更しようとしているクロージャ コンパイラの高度な最適化に問題があります。リッチ オートコンプリート コントロールを使用して、Name プロパティと Phone プロパティを持つ連絡先を含むアクションから返された JSON をフィードしています。Closure コンパイラは、メソッドとテンプレートで Name と Phone の名前を変更しています。メソッドでは、プロパティ名をオブジェクトへの文字列キーとして使用することで回避できますが、テンプレートでそれを行う方法がわかりません。

私のJSONオブジェクトにはプロパティ「Name」と「Phone」の完全な名前がありますが、関数はそれらを「Hx」や「Az」などに書き換えます。私のテンプレートも同様です:

これら 2 行を makeRow 関数の先頭に追加すると、圧縮された名前が元の名前から適切な値に設定されます。

これを行うことは、スペースに関してもパフォーマンスに関しても無駄に思えます。また、すべての JSON オブジェクトに対してこれを行うつもりはありません。将来、アプリケーションに多くのことを含める予定です (これは単純なテストです)。新しい名前を古い名前にマッピングする方法がわかりません。ソースマップを作成することはできますが、数字がたくさんあるだけで、それらが何を意味するのかわかりません。それがわかれば、C# で簡単なプロパティ マッパーを記述して、短縮された名前の動的オブジェクトを作成できるかもしれません。

クロージャ ライブラリ内のすべてのオブジェクトとプロパティの長い名前を考えると、単純な最適化モードを使用する必要がある場合。シンプルであるべきです。名前の変更を防ぐ @param の代わりに @json タグ、または @param がオブジェクトのプロパティの名前を変更しないようにするその他のシグナルがあれば、それは素晴らしいことだと思います。

になるだろう

externs.js ファイルを作成し、コンパイル時に指定することで、プロパティ名を同じままにできることがわかりました。

これらの名前を持つオブジェクト プロパティは圧縮されないと思いますが、本当ですか? 使用するクラスを指定して、プロパティ名の長いリストを生成するヘルパーを作成できると思います。また、動的な型を使用したい場合があり、プロパティ名を忘れたり、スペルを間違えたりするのではないかと心配しています。


編集:

プロジェクトがサポートしたいものではなく、次のようにオブジェクトをパラメーターとして使用することをお勧めします。

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

google-closure - Closure テンプレート内でオブジェクトを作成することは可能ですか?

Google Closure を使った作業を始めたばかりで、選択フィールドの作成を独自のテンプレートに移動し、そのテンプレートを次のように呼び出したいと思います。

templates.utils.selectテンプレートには、正しいオプションのプロパティを設定するロジックがありますselected。残念ながら、「すべてのコードが Soy V2 構文であるとは限りません (タグ {{param オプション: [ {名前: ... が見つかりました)」という例外が発生します。

options パラメーターを呼び出し元のテンプレートに渡すという回避策を使用できると思いますが、その場合、テンプレートに入るすべての方法がカバーされていることを確認する必要があり、非常に面倒です。

現時点では、私は一緒に行かなければならないと思います

これも面倒ですが、少なくともデータは 1 か所にあります。

より良い方法はありますか?

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

javascript - Google Closure Compiler 解析エラー: `css({float:'left'})` のプロパティ ID が無効です

Google Closure Compiler アプリケーション (コマンド ライン インターフェース) を使用しています。実行すると、以下のエラーが発生します。