2009-03-25 12 views
13

इंटरनेट एक्सप्लोरर 7 में कुछ गुण (माउस निर्देशांक) को शारीरिक रूप से माना जाता है जबकि अन्य तार्किक (ऑफ़सेट) होते हैं। यह अनिवार्य रूप से आवश्यक वेब डेवलपर्स ज़ूम स्थिति से अवगत होने या गणना करने के लिए आवश्यक है। IE8 रिलीज में सभी गुण तार्किक हैं।इंटरनेट एक्सप्लोरर 7 में ज़ूम स्तर कैसे प्राप्त करें? (जावास्क्रिप्ट)

+0

भी देखें http://stackoverflow.com/questions/1713771/how-to-detect-page-zoom-level-in-all-modern-browsers – ripper234

उत्तर

10

आप का उपयोग कर इसे प्राप्त कर सकते हैं:

var b = document.body.getBoundingClientRect();  
alert((b.right - b.left)/document.body.clientWidth); 

धन्यवाद एक बहुत @niclasnorgren!

8

इसके अलावा, यदि आपको IE 8 में चेक करने की आवश्यकता है, तो आप window.screen.deviceXDPI और window.screen.deviceYDPI का उपयोग कर सकते हैं। डिफ़ॉल्ट 9 6 डीपीआई है, और यदि आप ज़ूम कर चुके हैं, तो संख्या बड़ी होगी (उर्फ 144 जब 150% ज़ूम किया गया)

+0

धन्यवाद, यह वही था जो मुझे "ज़ूम अनुपात" खोजने के लिए जरूरी था :-) – naivists

+2

window.screen.deviceXDPI IE8, IE7 के लिए IE9 के इम्यूलेशन मोड में विश्वसनीय रूप से काम करता है। GetBoundingClientRect() विधि सभी ज़ूम मोड में 100% लौटाती है। – ddotsenko

+0

ध्यान दें कि screen.deviceXDPI केवल आईई है, क्रोम में नहीं। –

4

स्वीकार्य उत्तर पर एक छोटी वाक्यविन्यास त्रुटि (दस्तावेज़ के बजाय शरीर) है। ऐसा लगता है कि यह चाल भी है।

var rect = document.body.getBoundingClientRect(); 
var zoomLevel = Math.round((rect.right-rect.left)/document.body.clientWidth * 100); 
0

मैंने इस पोस्ट को अन्य पोस्ट पर पोस्ट किया है, जिसे आप यहां प्राप्त कर सकते हैं। जो आईई 7 में भी काम करेगा।

Auto-detect a screen resolution and change browser zoom with Javascript?

This will help to detect browser zoom tested on all browser 
<script> 
window.utility = function(utility){ 
utility.screen = { 
    rtime : new Date(1, 1, 2000, 12,00,00), 
    timeout : false, 
    delta : 200 
}; 
utility.getBrowser = function(){ 
    var $b = $.browser; 
    $.extend(utility.screen,$.browser); 
    utility.screen.isZoomed = false; 
    var screen = utility.screen; 
    screen.zoomf = screen.zoom = 1; 
    screen.width = window.screen.width; 
    screen.height = window.screen.height; 
    if($b.mozilla){ //FOR MOZILLA 
     screen.isZoomed = window.matchMedia('(max--moz-device-pixel-ratio:0.99), (min--moz-device-pixel-ratio:1.01)').matches; 
    } else { 
     if($b.chrome){ //FOR CHROME 
      screen.zoom = (window.outerWidth - 8)/window.innerWidth; 
      screen.isZoomed = (screen.zoom < .98 || screen.zoom > 1.02) 
     } else if($b.msie){//FOR IE7,IE8,IE9 
      var _screen = document.frames.screen; 
      screen.zoom = ((((_screen.deviceXDPI/_screen.systemXDPI) * 100 + 0.9).toFixed())/100); 
      screen.isZoomed = (screen.zoom < .98 || screen.zoom > 1.02); 
      if(screen.isZoomed) screen.zoomf = screen.zoom; 
      screen.width = window.screen.width*screen.zoomf; 
      screen.height = window.screen.height*screen.zoomf; 
     } 
    } 
    return utility.screen; 
}; 
    window.onresize = function(e){ 
     utility.screen.rtime = new Date(); 
     if (utility.screen.timeout === false) { 
       utility.screen.timeout = true; 
       setTimeout(window.resizeend, utility.screen.delta); 
     } 
    }; 
window.resizeend = function() { 
    if (new Date() - utility.screen.rtime < utility.screen.delta) { 
     setTimeout(window.resizeend, utility.screen.delta); 
    } else { 
     utility.screen.timeout = false; 
     utility.screen = utility.getBrowser(); 
     if(window.onresizeend) window.onresizeend (utility.screen); 
     if(utility.onResize) utility.onResize(utility.screen); 
    }    
}; 
window.onresizeend = function(screen){ 
    if(screen.isZoomed) 
     $('body').text('zoom is not 100%'); 
    else{ 
     $('body').text('zoom is 100% & browser resolution is'+[screen.width+'X'+screen.height]); 
    } 
}; 
$(document).ready(function(){ 
    window.onresize(); 
}); 
return utility; 
}({}); 
</script> 

Demo

संबंधित मुद्दे