我几乎可以肯定 PHP 无法检测浏览器的 View 端口大小,对吧?
但是从那以后,有人可以教我如何使用 Javascript 完成此操作,然后将该大小从 Javascript 变量收集到 PHP 中的变量吗?
问候
PS:对不起,如果有另一个帖子有同样的问题。
最佳答案
要获取视口(viewport)大小,您必须使用 Javascript,是的。 有关执行此操作的代码示例(并不总是那么容易,浏览器之间存在差异),您可以查看 JS 框架/库如何确定该大小(例如,在 prototype.js 中,有一个 getDimensions 函数可以执行此操作你想要什么) ;谷歌也会为您提供很多相关结果(this one 是这些结果的一个示例)
然后,您必须将该尺寸发送给 PHP。为此,有两种解决方案:
- 一种是使用 Ajax 请求(发送宽度和高度作为参数)
- 另一个是动态构建一个
<img>
标记,带有指向 PHP 脚本的 URL,例如'http://.../size.php?w=WIDTH&h=HEIGHT'
- 许多统计软件(例如 xiti/google analytics - 不确定那些软件是否支持 ^^)都使用这种方法。
在第二种情况下,JS 代码可能如下所示:
<script type="text/javascript">
var width = 100;
var height = 80;
var tag = document.createElement('img'); // Create the tag
tag.src = 'http://tests/temp/viewport/size.php?';
tag.src += 'w=' + width; // Pass the size
tag.src += '&h=' + height;
document.body.appendChild(tag); // Insert the tag into the page
</script>
然后,在 size.php 中,您使用 $_GET['w'] 和 $_GET['h']。 注意:您可能必须从 size.php 返回一些有效的图像数据,才能得到“红十字”图片(例如,透明的 gif,大小为 1x1 就可以了)
关于php - 使用 Javascript 检测访问者浏览器 View 端口大小并保存到 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1148127/