2012-01-06 9 views
0

私は奇妙なものがあります。私はJSF2(Java)ベースのシステムPrimefacesコンポーネントライブラリ(その関連性はわかりません)を使用して作業しており、onclickイベントでcheckParams()というJavaScript関数を実行するいくつかのボタンがあります。この関数を編集してコードを再現し、新しく追加されたコンポーネントに適応させる必要がありますが、実際にはJavaScript関数を見つけることができません。私はNetBeansで働いています&私はこの関数のプロジェクト検索を実行しました。返される検索結果はこのコンポーネントへのボタン参照です。同様に、私はGoogle Chromeの開発者コンソールでこの機能を検索しました。これは再びボタンの参照のみを返しました。私は体の負荷でalert(checkParams());を呼び出すクイックダーティー関数を作成しようとしましたが、Chromesコンソールは関数が未定義であることを私に伝えます。隠しJavaScript機能が見つかりません

ボタンは、さまざまな入力ボックスをチェックし、バッキングJavaファイルに情報を提出し、完璧に動作...しかし

誰もが、私はそれを見つけることができますどのようにこの機能が隠れてすることができる任意のアイデアを持っているかいますか?

+1

「checkParams」と呼ばれることをどのように知っていますか?それを信じさせたコードを見せてもらえますか? –

答えて

0

実行されてDOMから削除されるスクリプトファイルの中にJavaScript Closureが含まれている可能性があります。それをちょっと「隠す」のはちょっとしたトリックでしょう。しかし、それはonclickcheckParams()onclick属性にない場合のみです。 JavaScriptで割り当てる必要があります。

これが当てはまる場合は、最初に読み込まれたスクリプトを確認し、それらのスクリプトを調べることをお勧めします。また、これは、あなたがあなたのパラメータをどのように検証しているかを人々が見ないようにしない限り、自分のサイトのために関数を隠す努力をしています。ファイルに名前で定義されていなくても関数を割り当てることを難読化する方法がありますが、それは多くの労力です。

上記以外のところでは、私がそれを見つけるために言えることはたくさんあります。しかし、私はこれが事実であるかどうかはわかりません。注意すべき点の1つは、alert(checkParams())が戻り値を警告するということです。つまり、関数を定義することができます。代わりにalert (typeof (checkParams))を実行してみてください。それがundefinedの場合、関数は存在しません。そうでない場合は、console.log(checkParams)を実行して、その機能のtoString()を出力する必要があります。これはしばしばコードを表示します。

+0

お寄せいただきありがとうございます。メソッドが実際に存在していないことを確認し、より正確な検証が入力フィールド自体に組み込まれました。これはサブミット時に更新されました。ボタンonclick = "checkParams()"は、メソッドを開発するためのプレースホルダとして使用されていましたが、削除されず参照が削除されていない古い関数であったどちらの方法でも、関数が存在しないことを私に確認しました。乾杯 – Ally

関連する問題