2

WPフロントエンドとバックエンドの両方でロードするすべてのスクリプトにWPネイティブ関数wp_enqueue_script()を使用して、同じスクリプトへの重複した呼び出しなどを処理できるようにします。

問題の1つは、他のプログラマーがこの関数を使用せず、コードから直接スクリプトをロードしないことです。これにより、jQueryまたはjQuery-UIが2回ロードされ、多数のエラーが発生します。

もう1つの問題は、私が所有していないコードがエラーをトリガーし、この時点を超えてJavaScriptの実行を停止することです。

要するに:

私が所有していないコードでJavascriptエラーが発生します。
そのエラーのために私のコードは実行されません。
コードでそのエラーをバイパスして実行したいのですが。
これらの問題を処理する方法はありますか?

4

2 に答える 2

5
function ShieldAgainThirdPartyErrors($) {
    // Code you want protect here...
}

// First shot.
// If no error happened, when DOMContentLoaded is triggered, this code is executed.
jQuery(ShieldAgainThirdPartyErrors);

// Backup shot.
// If third party script throw or provoke an unhandled exception, the above function 
// call could never be executed, so, lets catch the exception and execute the code.
window.onerror = function () {

    ShieldAgainThirdPartyErrors(jQuery);

    return true;
}

必要なときに銃の引き金を2回引く場合は、最初のショットが成功したことを示すフラグを設定し、バックアップショットを回避します。状況によっては、サードパーティのコードが侵入しても最初のショットが実行される可能性があると思います。トラブルとセカンドショットをトリガーします。

于 2013-02-06T22:12:22.397 に答える
0

まったくお勧めしませんが、次のものを使用できます。

try {  
  //Some code likely to throw an error  
} catch (err) {}

これにより、通常はエラーもキャッチする必要がありますが、その後は何でも実行を継続できます。エラーをキャッチできない唯一のケースは、配列を操作して、が0未満になるsomearray[i-1]場所で実行する場合です。これは、条件を使用してエラーを防ぐよりもクリーンであるためです。i-1

于 2013-02-04T00:21:24.857 に答える