私は eval を使用していません。Crockford が次のような問題を抱えている理由がわかりません。次の問題を解決するためのより良いアプローチはありますか、それともこれは無視する必要があるだけですか (改善の余地がある場合は、ソリューションを完成/改善することを好みます)。
私はいくつかのピクセル トラッキングを使用しています。この場合、クライアントは JS 関数をonclick
、サイトからリダイレクトする HTML イメージ タグのプロパティにバインドしています。画像上で複数のイベント リスナーと競合状態になることなく、確実にクリックを追跡する必要があります。戦略は、実行時にイベントをオーバーライドし、コピーして独自の関数で実行することです。これは私が管理していないサイトに適用されており、変更できないことに注意してください。したがって、ソリューションは次のようになります。
...
func = Function(img.attr('onclick'));
...
img.attr('onclick', '');
... //some custom tracking code
func.call(this);
JSLint チェッカーがeval is evil
エラーをスローします。
href
アクションに関する複数のイベントの競合状態を回避するより良い方法はありますか?