昨日は、いくつかの異なる JavaScript エンジンを使って eval のテストをしていました。こういうことはみなさん、なさっているんだろうけれど、試行錯誤の上、たどりついたコードを公開します。
ブラウザとしては Mac 版の Camino, Firefox, Safari で確認しました。コマンド行の JavaScript エンジンとしては Rhino と v8 で確認しています。
ブラウザで実行した場合には id=”log area” が付せられたパーツに実行ログを記入します。該当するパーツが見つからない場合には alert 表示します。コマンド行の JavaScript エンジンでは、画面に print 出力します。
*HTML ファイル
*JavaScriptファイル
var has_document = typeof document !== “undefined”;
var on_load = function () {
if (has_document) {
var log_area = document.getElementById(“log area”);
if (log_area === null) print = alert;
else print = function (msg) { log_area.innerHTML += msg; }
}
print(“User Agent: “);
if (typeof navigator !== “undefined”) {
print(navigator.userAgent + ‘
‘);
} else {
print(“Browser version not identified.
“);
}
};
if (!has_document) on_load();