Ben bu yüzden düzgün bir jquery thickbox kendi ekranında yaklaşık% 75 kapsayacak yapabilirsiniz benim sayfasını ziyaret eden bir ziyaretçinin ekran çözünürlüğünü bilmek istiyorum.
Soru veya benim sorunu çözmek yardım için Çözümler büyük takdir!
Ne insanlar her zaman kendi tarayıcı penceresi kendi ekranı gibi aynı boyutta maksimuma düşündürüyor? Bilmiyorum, ben tek değilim.
Ne istiyorum kendi window% 75 karşılamaktır. Bu CSS kullanarak yapılabilir; Söz konusu eleman daha sonra, gövde elemanının bir çocuk ise
#box {
position: absolute;
top: 12.5%;
left: 12.5%;
width: 75%;
height: 75%;
}
muhtemelen (Ben olsa, onu test ettik) onu yapacağız.
EDIT: Ben şimdi ekleyerek, onu test ettik
html, body {
width: 100%;
height: 100%;
}
beklendiği gibi ve en az Firefox 3.5 :-) olarak çalıştı
JavaScript bu:
screen.width
screen.height
Ancak PHP istemci erişimi yoktur. Yani PHP komut dosyası için JavaScript tarafından toplanan değerleri geçirmek gerekir.
Ayrıca her kullanıcı, tam ekran modunda onun pencereleri vardır. Böylece daha iyi available window width/height kullanmalısınız.
Bu Pencere boyutları Hack deneyebilir ve hem TÜM Tarayıcıları konuşuyor. (Dilsiz IE6 dahil)
var width = document.body.offsetWidth;
var bodyHeight = document.body.scrollHeight;
var height = (typeof window.innerHeight !== "undefined")? window.innerHeight : (document.documentElement)? document.documentElement.clientHeight : document.body.clientHeight;
height = (bodyHeight > height)? bodyHeight : height;
Peki konuyla ilgili yapılan tüm iş sonra benim cevap artıracak ..
Öncelikle çok çaba ile kazanılan bazı sonuçlar:
[No cookies.. forget it] Don't do anything like setting session variables on serverside. Otherwise evrey time your page loads a new session file will be created on serverside (file is the usual handler for sessions) and the directory will pile up with files and you still wont be able to track the session.If you find a way, we all will be happy to hear it.
[No cookies.. forget fancy scripts!] Without cookies you might have some success, like with the method of tracking ip etc, but still errors are there and there will be a circumstance where it will appear.
[No cookies.. go for no cookies] If you can have your pages work without cookie go for it otherwise is not worth.
Ekran çözünürlüğü için aşağıda benim senaryom bu yapabilirsiniz:
Bu sadece hata ayıklama için, ben bunun için kendini özgür ancak testi hatasız yapmak için çalıştık DBG () fonksiyonu içerir, benim senaryom!
<?PHP
class prereqCls
{
//change this
private $self="http://localhost/prereq.php";
private $jsCookie="";
function __construct()
{
//entering conditions, an autosubmit bttn fetches the rest fields not it self
$enter=false;
if(isset($_GET['rl']))$enter=true;
if(!isset($_POST['js_alive']) and !isset($_POST['noJsBttn']))$enter=true;
if($enter)
{
dbg("Now writing a php cookie..","construct");
setcookie('cookie_alive',1,time()+3600);//set it for 1 hour
dbg("Now calling Js..","construct");
$this->getSettings();
return;
}
//identify setting
$this->identifySett();
//display the appropriate link
if($this->jsCookie!=="")
echo "<a href=".$this->self."?rl=1 >If you enebled {$this->jsCookie}, don't refresh
but click here to load the new settings!</a>";
else
echo "<a href=".$this->self."?rl=1 >Click only this to relaod the page..</a>";
//display the cookie if set
if(isset($_COOKIE['cookie_alive']))
{
echo "<br><br>Well this is the cookie!<br>";
print_r($_COOKIE);
}
}//method
private function identifySett()
{
if(isset($_POST['js_alive']) and isset($_COOKIE['cookie_alive']))
dbg("Both js and cookies are enabled!","construct");
elseif(isset($_POST['js_alive']) and !isset($_COOKIE['cookie_alive']))
{dbg("Js is enabled cookies not!","construct"); $this->jsCookie="Cookies";}
elseif(!isset($_POST['js_alive']) and isset($_COOKIE['cookie_alive']))
{dbg("Js is not enabled, cookie is!","construct"); $this->jsCookie="Javascript";}
elseif(!isset($_POST['js_alive']) and !isset($_COOKIE['cookie_alive']))
{dbg("Js and cookies are not enabled!","construct"); $this->jsCookie="Javascript and Cookies";}
}
//php method begins
private function getSettings()
{
?>
<html>
<head>
<script type="text/javascript">
//the values entered to cookie by js will be seen by php immediately on reload!!!
//write the screen data to the cookie too
var exdays = 365;
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(screen.width) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie="scr_width=" + c_value;
var c_value=escape(screen.height) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie="scr_height=" + c_value;
var c_value=escape(1) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie="js=" + c_value;
//autosubmit the form in milliseconds
window.setTimeout("document.getElementById('scrForm').submit();",0);
</script>
</head>
<body >
<form id="scrForm" action="<?PHP echo $this->self;?>" method="post">
<!--If Js is enabled the appropriate bttn will be shown-->
<script type="text/javascript">
document.write('<input type="hidden" name="js_alive" value="1">');
document.write('<input type="submit" name="JsBttn" value="Go">');
</script>
<noscript>
Some trouble trying to find screen settings.. Click to continue!
<input type="submit" name="noJsBttn" value="Go">
</noscript>
</form>
</body>
</html>
<?PHP
}
////////////////////php method ends
}/////////////class
//debuger
function dbg($str,$caller)
{
echo "<br> [{$str}][{$caller}]<br>";
$log="Log Begins:---".date('Y-M-d h:i:s')."--------[CALLER]{$caller}----------\n";
$log.= $str."\n";
$log.= "Log Ends:-------------------------------------------------------\n\n";
$fh=fopen("log_errors.log","a");
fwrite($fh, $log);
fclose($fh);
}
/////////////////////
//make the class alive
$alive = new prereqCls();
?>
Eğer ekranını tanımlamak sonra bu gibi bir görünüm için gidebilirsiniz:
Lütfen view.htm in (ne olursa olsun) dosyası gibi stil şunlardır:
<link rel="stylesheet" href="style.php" />
sonra style.php bu gibi olabilir:
<?php
header("Content-type: text/css");
$width = $_COOKIE['scr_width'];
$height = $_COOKIE['scr_height'];
element 1 width is let's say 0.2 of width
element 2 width is let's say 0.7 of width
big container (it could be a single cell table) width=all other elements width
or
if image height is>image width then this variable will be ...
or
image path is random
or image path dynamic
or ... etc etc endless possibilities, you can do anything here in this css stylesheet.
?>
then [still on the same file, Yes css and php together!] for example apply the variables,
only simple variables work down here, keep calculations for above.
#smImgZoom
{
width:<?PHP echo $zoomerImgWidth."px;";?>
height:<?PHP echo $zoomerImgHeight."px;";?>
padding:10px ;
}
etc etc this is how I do it so html remain clear, css clear, calculations separated.
Sadece benim yolum, gerekli iyi değil!