O JavaScript possui um 'interpretador' do código escrito, normalmente dentro das tags <script>Código</script>
Note que se o código for chamado antes do 'objeto' por ele acessado ser renderizado no browser irá dar erro de execução
do script. Por esse motivo precisamos colocar a execução do código num ponto onde a página inteira já tenha sido
renderizada. Os melhores pontos são :
1 - O evento body onLoad. Exemplo <body onload="myFunction()">
2 - Dentro de uma tag na última linha antes da tag /body. Ex: <script>FuncaoX();</script>
As informações a seguir são sobre o seu browser e foram obtidas a partir do JavaScript...
O script que gerou o código acima foi feito em um javascript antigo e foi o seguinte :
<div id="readout"></div><br /><br />
<div id="msg2"></div><br /><br />
<script>
navigator.sayswho = (
function () {
var ua = navigator.userAgent, tem,
M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
if (/trident/i.test(M[1])) {
tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
return 'IE ' + (tem[1] || '');
}
if (M[1] === 'Chrome') {
tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
if (tem != null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
}
M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
if ((tem = ua.match(/version\/(\d+)/i)) != null) M.splice(1, 1, tem[1]);
return M.join(' ');
}
)();
//console.log(navigator.sayswho); // outputs: `Chrome 62`
//alert(navigator.sayswho); // outputs: `Chrome 62`, 'IE 11', 'Edge 17'
document.getElementById("msg2").innerHTML = navigator.sayswho
</script>
Hoje o resultado seria o seguinte :
O código foi o seguinte:
Hoje o código seria o seguinte :<br />
<div class="col-3">
<script>document.write(navigator.appVersion);</script>
</div>
Este resultado foi possível porque hoje em dia padronizaram alguns recursos do browser e com
isto algumas funcionalidades passaram a ser mais confiáveis em todos os browsers.