web-dev-qa-db-ja.com

JavaScriptエラーを自動検出し、テーマユーザーに警告する

これは単純に聞こえるかもしれませんが、それはそうではありません:)

私が欲しいこと、そしてたぶん多くのテーマ開発者がすること(javascript/jqueryを使うテーマ)は、彼のサイトにjavascriptエラーがあることをテーマユーザに警告することです。

私のテーマでは、少なくともこれらのエラー状況の約95%で、問題は古い/不適切に書かれたインストール済みプラグインから来ています。他の5%は最新のプラグインとテーマの間の衝突から来ています。だから私のメッセージは、ユーザに一つずつ自分のプラグインをチェックして問題を解決するようにユーザに勧めます。

私はこれを解決する方法を見つけましたが、それはダッシュボードだけです(私のテーマ設定の中にあります)。基本的に私がやっていることはiframeの中にホームページをロードして、私に "OK"メッセージを送るためにiframeのdocument.ready()の中にある関数を待つことです。表示されない場合は、エラーを表示します(私は postMessage を使用してiframe文書と通信します)。

とにかく、私の質問は私もどうやってこれをフロントページからすることができるのですか? pmを使わずに、あまりにも重いので(テーマ設定では問題ありません。ライブデザインの調整にも使用されているからです)

その他の信頼性の低い解決策:

  • メッセージを<body>の直後に追加し、javascriptで隠します(メッセージの後にjsを付けます)。問題は、チェック後にエラーが発生する可能性があることです。
  • hTML内の任意の場所にメッセージを追加し、それをdocument.readyのjQueryで削除します。ユーザーに2〜3秒間メッセージが表示され、その間にサイトが読み込まれているため許可されません...
1
onetrickpony

エラーとエラーの原因となったコードを表示するためにブラウザの「開発者」ツールを使用しないのはなぜですか。私は、IE、Firefox、Safariがそれぞれ開発者向けツールを利用できることを知っています(私はいつも使っています) - 他のブラウザの機能については知りません。

2
user10418

JavaScriptがグローバルエラー処理関数を持っているかどうかを簡単に調べてみました。 window.onerror それで、私はそれが十分にサポートされているかどうかを調べるためにそれ以上詳しく調べませんでした、しかしおそらくあなたはページ、ブラウザ、おそらく失敗したスクリプト情報などを送ることができるphpにajaxリクエストを送るためにphpを使うことができます管理者に電子メールを送信するには、この情報を電子メールで送信します。そのようにしてそれはサイトを見ているどのユーザによっても引き起こされる可能性があります。

1
patnz