2009-06-01 17 views
18

मैं एक सटीक संख्या में इकाइयों (सेंटीमीटर/इंच) पर एक वेब पेज दिखाने के लिए उपयोगकर्ता के प्रदर्शन के डीपीआई को प्रोग्रामेटिकल रूप से निर्धारित करना चाहता हूं। मुझे यह एक अजीब अनुरोध पता है: यह एक विज़ुअलाइजेशन रिसर्च प्रोजेक्ट के लिए है और यह एक तरह का नियंत्रण है। वर्तमान में हम उपयोगकर्ता को स्क्रीन पर क्रेडिट कार्ड डालकर वास्तविक क्रेडिट कार्ड में एक resizable div (Mootools के माध्यम से) से मेल खाते हैं, और voila हम डीपीआई प्राप्त कर सकते हैं और पृष्ठ को सही तरीके से प्रदर्शित कर सकते हैं।ब्राउज़र के माध्यम से प्रोग्रामेटिक रूप से डीपीआई निर्धारित करते हैं?

क्या कोई ऐसा करने के लिए प्रोग्रामेटिक तरीके से सोच सकता है?

+0

की संभावित डुप्लिकेट [प्रणाली डीपीआई/जे एस/सीएसएस से पीपीआई का पता लगा रहा?] (Http://stackoverflow.com/questions/279749/detecting-the-system-dpi-ppi-from -जेएस-सीएसएस) – Endless

उत्तर

3

आप जावास्क्रिप्ट/mootools में यह कर रहे हैं, CSS units अपने दोस्त हैं। आप इंच या सेंटीमीटर, या यहां तक ​​कि अंक (एक इंच का 1/72) में आकार निर्दिष्ट कर सकते हैं। यदि आपको किसी भी कारण से पूरी तरह से डीपीआई की आवश्यकता है, भले ही आप उन इकाइयों में आकार निर्दिष्ट कर सकें, तो बस "आकार बदलने योग्य" div का आकार जिसे आप ज्ञात आकार में उपयोग कर रहे हैं और अनुवादित पिक्सेल आकार से गणना करें।

संपादित करें:

दुर्भाग्य से, अंक, सेमी, और में की सीएसएस इकाइयों नहीं शारीरिक रूप से सही हैं। वे केवल अपेक्षाकृत सही हैं। यह पहली बात थी जब मैं कोशिश करता था जब तक मुझे एहसास नहीं हुआ कि यह काम नहीं कर रहा था और सीएसएस स्पेक की जांच की .. मेरी निराशा। - ब्रैंडन Pelfrey

एक अच्छा बात है कि; ब्राउज़र डिफ़ॉल्ट डीपीआई (मुझे लगता है कि 72 या 96) और उसके साथ जाकर इसे नकली बनाते हैं।

ठीक है, यदि आप सटीक आकार की जरूरत है आप के लिए पूछ रहे हैं की तरह, आप भाग्य से बाहर रहे हैं। ब्राउजर चालू होने वाले मॉनीटर के वर्तमान रिज़ॉल्यूशन और उस मॉनिटर के "देखने योग्य स्क्रीन क्षेत्र" को पढ़ने में सक्षम होने के बिना आप इसे कभी भी प्राप्त नहीं कर पाएंगे। जावास्क्रिप्ट के माध्यम से आप इसे पाने के लिए कोई रास्ता नहीं है।

मेरा सुझाव है कि आप सीएसएस इकाइयों के अनुसार डिफ़ॉल्ट धारणा ब्राउज़रों की है कि और आकार बनाते हैं। फिर आप अपने उपयोगकर्ताओं को आपके द्वारा उल्लिखित विधि का उपयोग करके "आकार बदलने" को अनुमति दे सकते हैं, लेकिन केवल तभी आवश्यक है। उपयोगकर्ताओं के सत्र या कुकी के हिस्से के रूप में संग्रहीत डीपीआई गणना के साथ एक अलग पृष्ठ पर ऐसा करें।

वैकल्पिक रूप से, एक बार माइक्रोसॉफ्ट this bug ठीक करता है, तो आप सिल्वरलाइट के "डिवाइस स्वतंत्र इकाइयों" सही स्केलिंग के लिए इस्तेमाल कर सकते हैं।

+1

दुर्भाग्य से, अंक, सेमी, और में सीएसएस इकाइयां शारीरिक रूप से सही नहीं हैं। वे केवल अपेक्षाकृत सही हैं। यह पहली बात थी जब तक मैंने महसूस नहीं किया कि यह काम नहीं कर रहा था और सीएसएस spec की जांच की .. मेरी निराशा के लिए। –

+1

सीएसएस इकाइयों का लिंक अब है: http://www.w3schools.com/cssref/css_units.asp – Christian

+0

अपडेट किया गया, धन्यवाद @ क्रिस्टियन – Randolpho

2

आप नहीं कर सकते। डीपीआई स्क्रीन के पिक्सेल रिज़ॉल्यूशन और डिस्प्ले के भौतिक आयामों का एक कार्य है। उत्तरार्द्ध किसी भी ब्राउज़र इंटरफ़ेस में उपलब्ध नहीं है जिसे मैं जानता हूं।

0

मुझे लगता है कि आप सटीक परिणाम प्राप्त नहीं होगा - उदाहरण के लिए आप पर नजर रखने का उपयोग कर चित्र आकार बदल सकते हैं। मैं उपयोगकर्ता द्वारा संचालित विधि के साथ रहना चाहता हूं, हालांकि आप f.e. कर सकते हैं पहले अनुमान के लिए स्क्रीन रिज़ॉल्यूशन का पता लगाएं।

0

लक्ष्य कंप्यूटर पर चलने वाले कोड के बिना ब्राउज़र से संभव नहीं है। यदि आप लक्ष्य कंप्यूटर पर कुछ इंस्टॉल कर सकते हैं तो आप इसकी गणना करने के लिए मॉनिटर के बारे में पर्याप्त निर्धारित करने में सक्षम हो सकते हैं।

0

कोई ऐसा करने में सक्षम है लेकिन मुझे नहीं पता कि कैसे ....

http://www.infobyip.com/detectdisplaysize.php http://www.infobyip.com/detectmonitordpi.php

+2

मेरे एंड्रॉइड फोन पर गलत परिणाम देता है। – sinelaw

+1

और आईपैड पर भी गलत परिणाम देता है – Bgi