在if语句中使用浏览器视口大小

时间:2014-06-10 16:29:21

标签: javascript php ajax

我找到了以下javascript代码来获取当前视口大小

//get viewport size
var viewport = function(){
var viewport = new Object();
viewport.width = 0;
viewport.height = 0;
// the more standards compliant browsers (mozilla/netscape/opera/IE7) 
//use window.innerWidth and window.innerHeight
if (typeof window.innerWidth != 'undefined')
{
    viewport.width = window.innerWidth,
    viewport.height = window.innerHeight
}
else if (typeof document.documentElement != 'undefined'
&& typeof document.documentElement.clientWidth !=
'undefined' && document.documentElement.clientWidth != 0)
{
    viewport.width = document.documentElement.clientWidth,
    viewport.height = document.documentElement.clientHeight
}
else
{
    viewport.width = document.getElementsByTagName('body')[0].clientWidth,
    viewport.height = document.getElementsByTagName('body')[0].clientHeight
}
return viewport;
};

var vp = viewport();
alert(vp.width + " x " + vp.height);

哪个很好用,但我想知道是否可以运行php if语句根据视图端口大小显示指定数量的项目?

类似

if(vp > 480 x 700)
{
    $items = 4;
}
else
{
    $items = 2;
}

我知道vp不能以这种方式使用但是如果有人知道我可以在php中使用vp的值,我真的很感激一些帮助:)

非常感谢 路加

1 个答案:

答案 0 :(得分:0)

PHP在服务器上运行,客户端上运行JavaScript。要获得通过的信息,您必须传递信息。这意味着发送消息。

要做到这一点,你有许多不同的方式取决于上下文:

  • 页面加载期间?
    好吧,传输(即:创建)一个小的HTML或PHP页面,其中客户端运行该代码,然后JavaScript将自身重定向到新页面 - 并且您可以将该值作为URL参数传递
  • 页面加载后页面不应重新加载?
    • 使用最新的网络功能?
      你可以试试网络套接字
    • 保持一点保守? 您应该使用AJAX请求。

哦,还有一件事需要考虑:PHP脚本通常以Request-Response方式运行。即在发送页面内容期间无法等待用户反馈 因此,您可能还需要一种跟踪用户的方法,例如通过会话ID。