لا يشير التحجيم المذكور هنا إلى تحجيم حجم المتصفح ، بل إلى نسبة التحجيم لمحتوى الويب للمتصفح (اضغط على مفاتيح CTRL و + Sign أو مفاتيح علامة).
هناك العديد من الطرق للكشف عن هذا النوع من التحجيم. يستخدم مساحة QQ Flash لاكتشاف ما إذا كان المتصفح يتوسع. فيما يلي طريقة JavaScript للكشف عن تحجيم المتصفح.
بالنسبة إلى IE6 ، أتجاهل ذلك لأن IE6 يمكنه فقط توسيع نطاق النص.
دعنا نتحدث أولاً عن واجهة الكشف القياسية التي يوفرها المتصفح. Window.DevicePixelRatio هي نسبة وحدات البكسل المادية على الجهاز والبكسل المستقلة للجهاز. يمكن استخدام هذه السمة لاكتشاف ما إذا كانت صفحة الويب مقاسًا أم لا. على متصفح الكمبيوتر العادي ، تكون القيمة الافتراضية 1 إذا لم يكن هناك تكبير افتراضيًا. حاليًا ، يتم دعم Firefox ، Chrome ، وما إلى ذلك.
حسنًا ، لقد حان الوقت للحديث عن كيفية التعامل مع IE. IE يوفر سمتين: window.screen.devicexdpi و window.screen.logicalxdpi. DeviceXDPI هو البكسل الفعلي المقابل على الجهاز ، و LogicalXDPI هي نسبة وحدات البكسل المستقلة للجهاز. تعتمد واجهة اكتشاف معيار التقدير أيضًا على تحسين طريقة IE. القيمة الافتراضية لهاتين السمة على الأنظمة أعلاه Windows XP+ هي 96 ، لأن القيمة الافتراضية للنظام هي 96dpi.
بالنسبة للمتصفحات التي لا تدعم اثنين أعلاه ، يمكنك أيضًا استخدام خصائص Window.outerwidth و Window.innerwidth. إرجاع العرض الخارجي العرض الخارجي الفعلي لعنصر النافذة ، يعيد INNERWIDTH العرض الداخلي الفعلي لعنصر النافذة ، وكلاهما يتضمن العرض بما في ذلك شريط التمرير.
مع هذه السمات ، يمكنك بشكل أساسي حل المتصفحات الشائعة على متصفحات الكمبيوتر. رمز التنفيذ كما يلي:
إذا كانت قيمة الإرجاع لوظيفة Detectzoom 100 ، فهي مستوى التكبير الافتراضي ، إذا كان أكبر من 100 ، فسيتم تكبيره ، وإذا كان أقل من 100 ، يتم تقليصه.
وظيفة detectzoom () {var ratio = 0 ، screen = window.screen ، ua = navigator.useragent.toLowerCase () ؛ if (window.devicepixelratio! == undefined) {ratio = window.devicepixelratio ؛ } آخر إذا (~ ua.indexof ('msie')) {if (screen.devicexdpi && screen.logicalxdpi) {ratio = screen.devicexdpi / screen.logicalxdpi ؛ }} آخر إذا (window.outerwidth! == undefined && window.innerwidth! == undefined) {ratio = window.outerwidth / window.innerwidth ؛ } if (ratio) {ratio = math.Round (نسبة * 100) ؛ نسبة الإرجاع ؛} ؛المقالات الأصلية ، يرجى الإشارة إلى إعادة الطباعة: أعيد طبعها من التنمية الأمامية