2009-05-21 32 views

उत्तर

2

आपको जावास्क्रिप्ट से एक PHP स्क्रिप्ट तक इसे पास करना होगा जैसे अधिकांश ट्रैकिंग कोड (एक पारदर्शी छवि अनुरोध के साथ)।

+0

और आप अभी भी नहीं बता सकता उपयोगकर्ता खिड़की या ऐसा किसी अन्य घटनाओं का आकार बदलता है, तो .. – xaxxon

4

आप this example में जावास्क्रिप्ट के साथ एक साथ पीएचपी उपयोग करने के लिए, की तरह होगा:

$url = $_SERVER['PHP_SELF']; 

if(isset($HTTP_COOKIE_VARS["res"])) 
    $res = $HTTP_COOKIE_VARS["res"]; 

else { 
    ?> 
    <script language="javascript"> 
    <!-- 
    go(); 

    function go() 
    { 
     var today = new Date(); 
     var the_date = new Date("August 31, 2020"); 
     var the_cookie_date = the_date.toGMTString(); 
     var the_cookie = "res="+ screen.width +"x"+ screen.height; 
     var the_cookie = the_cookie + ";expires=" + the_cookie_date; 
     document.cookie=the_cookie 
      location = '<?echo "$url";?>'; 
    } 
    //--> 
    </script> 
    <?php 
} 

//Let's "split" the resolution results into two variables 
list($width, $height) = split('[x]', $res); 

//Take the width and height minus 300 
$tb_width = $width-300; 
$tb_height = $height-300; 

//Make the table 
print("<table align=center border=1 width=" .$tb_width . " height=" . $tb_height . " > 
    <tr><td align=center>Your screen resolution is " . $width . " by " . $height . ".<br> 
    The width/height of this table is " . $tb_width . " by " . $tb_height . ".</td></tr> 
    </table>"); 
25

नहीं, यह नहीं कर सकते। PHP सर्वर पर चलता है, इसलिए यह क्लाइंट सेटिंग्स का पता नहीं लगा सकता है जब तक आप सर्वर पर PHP स्क्रिप्ट को जानकारी पास करने के लिए विशिष्ट क्लाइंट-साइड चरण नहीं लेते।

+0

आप PHP का उपयोग करने के साथ जावास्क्रिप्ट –

0

मॉनिटर आकार जे एस का उपयोग कर प्राप्त नहीं किया जा सकता है, तो आप एक सर्वेक्षण करना है :)

+1

ओह साथ होगा? हाँ यह कर सकते हैं। – Lloyd

+3

लॉयड: आप स्क्रीन रिज़ॉल्यूशन का पता लगा सकते हैं, लेकिन मॉनिटर आकार नहीं। एक 1600x1200 रिज़ॉल्यूशन का मतलब पुराना 21 "सीआरटी, एक मामूली बड़ा एलसीडी, और वास्तव में सुंदर और घने छोटी स्क्रीन 16" –

+0

+1 हो सकता है क्योंकि * आकार * कोसाबा – cjk

5

कृपया ध्यान दें कि हमारे ब्राउज़रों की तरह हम में से कुछ गैर अधिकतम है। शायद आप स्क्रीन रिज़ॉल्यूशन के बजाय ब्राउज़र आकार का पता लगाने की कोशिश करना बेहतर होगा। मुझे लगता है कि जेएस करने के लिए या तो बहुत समान होगा, लेकिन मुझे वास्तव में यह नहीं पता कि यह मामला है।

इसके अलावा, अंधे आदमी के स्क्रीन रीडर का संकल्प क्या है?

+2

+1। मेरे पास 2560x1600 स्क्रीन रिज़ॉल्यूशन है, मैं लगभग अधिकतम कभी नहीं चलाता। आपको दृश्य पोर्ट आकार (खिड़की क्षेत्र टूलबार, स्क्रॉलबार, स्टेटस बार और विंडो सजावट की गणना नहीं कर रहा है) पढ़ना चाहिए। – SpliFF

0

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

1

कुछ लोगों को मोबाइल devoloping के लिए ब्राउज़र आकार की आवश्यकता है। कुछ मामलों में यह आवश्यक जानकारी है।

WURFL और WALL का उपयोग करके इसके आसपास हो सकता है क्योंकि अधिकतर मोबाइल जेएस का समर्थन नहीं करते हैं।

2

मैं इसे भी ढूंढ रहा था, लेकिन पाया कि इनमें से कोई भी जवाब वास्तव में प्रश्न का उत्तर नहीं दिया! दरअसल, PHP के लिए स्क्रीन रिज़ॉल्यूशन को जानने का कोई तरीका नहीं है क्योंकि यह सर्वर की तरफ चल रहा है। चूंकि उस जानकारी को HTTP पर्यावरण चर के साथ पास नहीं किया गया है, इसलिए हमें एक और मार्ग की आवश्यकता है। जावास्क्रिप्ट एक विकल्प है।

नीचे दिया गया उदाहरण एक PHP पृष्ठ है जो HTTP अनुरोध में resolution चर के लिए जांचता है। यदि यह resolution वैरिएबल नहीं पाता है, तो यह उस पृष्ठ पर एक छोटा सा जावास्क्रिप्ट बनाता है जो उस चर और पास और चौड़ाई को रीडायरेक्ट में वापस ले जाता है। बेशक, जब पृष्ठ को रीडायरेक्ट के बाद फिर से लोड किया जाता है तो सभी चर सेट किए जाएंगे और PHP संकल्प को जानेंगे।

<?php 
    if(!isset($_GET['resolution'])) {  
     echo "<script language=\"JavaScript\">  
<!--  
    document.location=\"$PHP_SELF?resolution=1&width=\"+screen.width+\"&height=\"+screen.height;  
//-->  
</script>";  
    } else { 
     // Code to be displayed if resolution is detected  
     if(isset($_GET['width']) && isset($_GET['height'])) {  
      echo "Width: " . $_GET['width'] . " and Height: " . $_GET['height'] . "<br />"; 
     } else {  
      echo "Resolution not detected."; 
     }  
    } 
?> 

अंत में मुझे यह एक बहुत असंतोषजनक समाधान मिला। यह काम करता है, लेकिन यह बदसूरत है, यूआरएल में क्रूर जोड़ रहा है और एक रीडायरेक्ट की आवश्यकता है। फिर भी, यह किसी को बेहतर उत्तर पोस्ट करने के लिए प्रेरित कर सकता है। एफवाईआई, क्रेडिट जहां क्रेडिट देय है, यह उत्तर this post से प्रेरित था।

+0

आप समय पर एक बिंदु पर संकल्प को जानते हैं .. लेकिन जब तक आप रीडायरेक्ट के बाद लोड करते हैं, तो कौन जानता है कि संकल्प क्या है। – xaxxon

2

मुझे पता है कि यह सबसे अच्छा जवाब नहीं है इसलिए डाउनवोट को छोड़ दें।

<script> 
/* 
    JAVASCRIPT IS ON TELL THE DEVELOPER# 
*/ 
// GET BROWSER WIDTH AND HEIGHT 
var bh=screen.height; 
var bw=screen.width; 
window.location="?doSubmit=do&js=yes&bh="+bh+"&bw="+bw+""; 
</script> 

<noscript> 
    <!-- 
     JAVASCRIPT IS OFF TELL THE DEVELOPER# 
    --> 
    <meta http-equiv='refresh' content='0;url=?doSubmit=do&js=off&bh=off&bw=off'> 

</noscript> 

<? 

if($_GET["doSubmit"]=="do"){ 

    // VARS 

     $bh=$_GET["bh"]; 
     $bw=$_GET["bw"]; 
     $js=$_GET["js"]; 

    // PRINT HTML ?> 

<table> 

    <tr><td><strong>Browser Width:</strong></td><td><?=$bw;?>px</tr> 
    <tr><td><strong>Browser Height:</strong></td><td><?=$bh;?>px</tr> 
    <tr><td><strong>JavaScript Detection (y/n):</strong></td><td><?=$js;?></tr> 

</table> 
संबंधित मुद्दे

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