アラート ボックスへの JavaScript エラーは私の魂を傷つけます。console.log()
の代わりに送信する方法はありalert()
ますか?
2924 次
4 に答える
4
window.alert を上書きできます:
var oldAlert = window.alert; // reference to the original window.alert
window.alert = function(message) {
if (window.console && console.log) {
console.log(message);
} else {
oldAlert(message); // if console.log doesn't exist call window alert
}
}
于 2009-08-18T22:44:19.157 に答える
0
Javascript エラーに依存します。JavaScript はクライアントによって解釈されるため、クライアント側でエラー メッセージを表示する必要があります。サーバー ログ ファイルにエラーを記録する唯一の現実的な方法は、クライアントが Javascript を解釈する前にサーバー側でエラーが発生している場合です。
于 2009-08-18T22:37:23.430 に答える
0
environment.rb ファイルで RJS デバッグをオフにしてみてください。
config.action_view.debug_rjs = false
これにより、アラートが完全にオフになります。別のオプションはオーバーライドActionView::Helpers::GeneratorMethods#to_s
です:
module ActionView
module Helpers
module GeneratorMethods
def to_s #:nodoc:
returning javascript = @lines * $/ do
if ActionView::Base.debug_rjs
source = javascript.dup
javascript.replace "try {\n#{source}\n} catch (e) "
javascript << "{ console.log('RJS error:\\n\\n' + e.toString()); console.log('#{source.gsub('\\','\0\0').gsub(/\r\n|\n|\r/, "\\n").gsub(/["']/) { |m| "\\#{m}" }}'); throw e }"
end
end
end
end
end
end
メソッドのオーバーライドに関する限り、私は自分の深さを超えていることを認めます。それが推奨される方法であるかどうかはわかりません。私のプロジェクトでは、このようなことをする必要はありません。
私の個人的な好みは、RJS をスキップして目立たない jQuery を使用することです。
于 2009-08-19T01:43:18.950 に答える
0
はい、console.log("error message goes here")
于 2009-08-18T22:20:29.767 に答える