السلام عليكــم ورحمـة الله وبركاتــه ،،
كتبت هذا
<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 كمثال)
من ثم تستطيع أن تقوم بوضع هذه الصفحة في موقع يسمح باختبار شكل ظهور الصفحة لك على جميع المتصفحات العالمية الموجودة حالياً (تقريباً) بإصداراتها المختلفة مثل:
http://browsershots.org
وهذا ما فعلته
Resized to 74% (was 883 x 441) - Click image to enlarge
لاحظوا كيف أن متصفح IE تقريباً الوحيد الذي يعيد قيم، يمكن من خلال هذه الصور أن أحصل على كافة قيمة j (مرة أخرى أقول تقريباً لكي أترك احتمال للصدفة وللبرمجة السيئة)
ملف مرفق(ملفات)
sniffer.rar (3.41كيلو )