طريقة لإيجاد قيمة J المحتملة لجميع المتصفحات (تقريباً) لتحليل Gumblar.cn

الناقل : elmasry | الكاتب الأصلى : Xacker | المصدر : www.arabteam2000-forum.com

السلام عليكــم ورحمـة الله وبركاتــه ،،

كتبت هذا

<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 كمثال)

ارفق صورة : monthly_05_2009/post-7008-1242673120.png

من ثم تستطيع أن تقوم بوضع هذه الصفحة في موقع يسمح باختبار شكل ظهور الصفحة لك على جميع المتصفحات العالمية الموجودة حالياً (تقريباً) بإصداراتها المختلفة مثل:
http://browsershots.org

وهذا ما فعلته
Resized to 74% (was 883 x 441) - Click image to enlargeارفق صورة : monthly_05_2009/post-7008-1242676630.png


لاحظوا كيف أن متصفح IE تقريباً الوحيد الذي يعيد قيم، يمكن من خلال هذه الصور أن أحصل على كافة قيمة j (مرة أخرى أقول تقريباً لكي أترك احتمال للصدفة وللبرمجة السيئة)
 
ملف مرفق(ملفات)
 
ملف مرفق  sniffer.rar (3.41كيلو )