السلام عليكــم ورحمـة الله وبركاتــه ،،
كتبت هذا
<html>
<head>
<style type="text/css">
body { font-family: tahoma,verdana,arial; }
dfn { font-weight: bold; }
dfn.pass, dfn.pass var { color: #060; }
dfn.fail, dfn.fail var { color: #900; }
</style>
<script src="sniffer.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
var navprops = ['appVersion','userAgent']
var winprops = ['ScriptEngine','ScriptEngineBuildVersion','ScriptEngineMajorVersion','ScriptEngineMinorVersion']
document.write('<h3>Navigator properties:<\/h3><ul>');
for( var x = 0; x < navprops.length; x++ ) {
if (navprops[x]=='userAgent'){
var s = '<li><dfn class="pass"><var>'+ navprops[x] +'<\/var>:<\/dfn> <var'+ ((navprops[x]=='appVersion'||navprops[x]=='userAgent')?' style=\"white-space: normal;\"':'') +'>'+ ((navigator[navprops[x]]&&typeof(navigator[navprops[x]])!='string'&&typeof(navigator[navprops[x]])!='boolean')?typeof(navigator[navprops[x]]):navigator[navprops[x]]) +'<\/var><\/li>\n';
}
if (typeof(s)=='string'){
document.write(s); break;
}
}
document.write('<\/ul><h3>Navigator methods:<\/h3><ul>'+
'<li>'+(((window.ScriptEngine&&ScriptEngine().indexOf('JScript')+1)||navigator.javaEnabled)?('<dfn class="pass"><var>javaEnabled()<\/var>:<\/dfn> <var>'+navigator.javaEnabled()+'<\/var><\/li>'):'<dfn class="fail"><var>javaEnabled()<\/var>:<\/dfn> <var>undefined<\/var><\/li>')+
'<\/ul><h3>Window.ScriptEngine:<\/h3><ul>');
var j = "";
for( var x = 0; x < winprops.length; x++ ) {
document.write('<li><dfn class="'+((typeof(window[winprops[x]])=='undefined')?'fail':'pass')+'"><var>'+winprops[x]+'<\/var>:<\/dfn> <var>'+(window[winprops[x]]?window[winprops[x]]():window[winprops[x]])+'<\/var><\/li>\n');
if (typeof(window[winprops[x]]?window[winprops[x]]():window[winprops[x]])=='number'){
j += window[winprops[x]]?window[winprops[x]]():window[winprops[x]];
}
}
document.write('\n<li><dfn class="'+((j.length<=0)?'fail':'pass')+'"><var>j<\/var>:<\/dfn> '+ ((j.length<=0)?'undefined':j) +'<\/li>');
</script>
</body>
</html>والذي لو قمت برفعه لمساحة ما
مع ملف sniffer.js المرفق
سيقوم بإظهار شئ قريب من هذا
(على MSIE 7.0 كمثال)
من ثم تستطيع أن تقوم بوضع هذه الصفحة في موقع يسمح باختبار شكل ظهور الصفحة لك على جميع المتصفحات العالمية الموجودة حالياً (تقريباً) بإصداراتها المختلفة مثل:
وهذا ما فعلته
لاحظوا كيف أن متصفح IE تقريباً الوحيد الذي يعيد قيم، يمكن من خلال هذه الصور أن أحصل على كافة قيمة j (مرة أخرى أقول تقريباً لكي أترك احتمال للصدفة وللبرمجة السيئة)
