Browser Information
by Lachlan Arthur
JavaScript
function htmlEnts(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
navigator_json = '{';
navigator_array = [];
for (var i in navigator) {
if (typeof navigator[i] == 'number' || typeof navigator[i] == 'string' || typeof navigator[i] == 'boolean') {
navigator_array.push('"' + htmlEnts(i) + '":"' + htmlEnts(navigator[i]) + '"');
}
}
navigator_json += navigator_array.join(',') + '}';
plugins_json = '{';
plugins_array = [];
for (var i = 0; i < navigator.plugins.length; i++) {
plugins_array.push('"' + htmlEnts(navigator.plugins[i].name) + '":"' + htmlEnts(navigator.plugins[i].description) + '"');
}
plugins_json += plugins_array.join(',') + '}';
screen_json = '{';
screen_array = [];
for (var i in screen) {
screen_array.push('"' + htmlEnts(i) + '":"' + htmlEnts(screen[i]) + '"');
}
screen_json += screen_array.join(',') + '}';
json = '{"navigator":' + navigator_json + ',"plugins":' + plugins_json + ',"screen":' + screen_json + '}';
console.log(JSON.parse(json));