【问题标题】:Javascript screen width/height to PHPJavascript屏幕宽度/高度到PHP
【发布时间】:2011-07-28 11:15:00
【问题描述】:

我知道这不一定有任何意义,但是有没有办法在客户端上运行 javascript,找到活动浏览器的屏幕宽度/高度,然后将这些变量传递给 PHP 脚本?

所有的常识通常都是PHP >> Javascript,我想永远不要相信客户端,我暂时找不到方法。

这是一个 .php 文件,因此很容易阻塞,但我似乎无法反其道而行之。

我正在创建一个 JSON 对象,但后来意识到我仍然要爬同样的墙。

谢谢。

作为业余爱好者,我发现技术之间的交互有点挑战性,但知道它让我感觉很强大。也许很快我就可以用手来阻止异常了。好吧,矩阵引用失败了,因为这是人们在第二层文字级别上所做的事情。

【问题讨论】:

  • 传递这些变量你想完成什么?
  • 当浏览器收到答案时,php 脚本通常已经终止,因此唯一的方法是使用 AJAX 或嵌入文件,并将分辨率信息作为参数传递。就像一个 1x1 跟踪像素。

标签: php javascript json browser


【解决方案1】:

你可以这样做:

<script>
document.getElementById('hidden-field').value = screen.width + ',' + screen.height;
</script>

<input id="hidden-field" name="dimensions" value="" />

并提交表单。您可以使用 AJAX 来代替发送该数据、cookie、图像等。我个人会使用 AJAX。

但是,是的,在这种情况下,您只需要从表面上信任客户即可。但是,如果您正在使用该数据执行某些操作(例如创建图像或其他内容),您仍应验证该值是否有意义,这样您就不会最终尝试创建 1 亿像素宽的图像等。

【讨论】:

  • +1 最后一条建议。我总是保证安全,这是个好主意(虽然有点无关)。
【解决方案2】:
<script type="text/javascript">
    document.write('<img src="index.php?width='+screen.width+'&height='+screen.height+'"/>');
</script>

(哦,看这里,没有 AJAX :)

顺便说一句,我强烈建议不要使用document.write,而是使用window.onload 或您喜欢的JS 库中更好的东西(例如jQuery 中的jQuery(document).ready(function(){ jQuery(document.body).append("the-image-as-in-my-example"); }))。

【讨论】:

    【解决方案3】:

    用 jQuery 快速实现

    $(function(){
     $.ajax({
       url: 'file.php',
       type: 'POST',
       data: {h: screen.height, w: screen.width}
     });
    });
    

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多