【问题标题】:How to verify html DIV's width and height on server side?如何在服务器端验证 html DIV 的宽度和高度?
【发布时间】:2009-11-02 08:59:46
【问题描述】:

我想知道是否可以在不运行任何浏览器的情况下在服务器端 (PHP) 验证 DIV 的宽度和高度?

似乎不写解析器是不可能的,这是不值得的。

我能想到的一种 Rube Goldberg 方法是将 DIV 转换为 html(使用 html tidy),然后转换为 PDF,然后获取大小。效率极低。即使在那种情况下,我也不确定如何设置 PDF 页面大小。

真正的实际问题是我想确认在客户端创建的广告的大小。用户只根据大小收费。验证尺寸的替代方法有哪些? Google 和 adready (www.adready.com) 不是已经这样做了吗?

已编辑:这些广告是基于模板的,客户只更改了几个 TEXT 变量。

【问题讨论】:

  • 有一些xhtml到pdf的转换工具。他们可能会有所帮助吗?

标签: html width


【解决方案1】:

这绝对不可能。有大量客户端设置会影响您无法控制的页面呈现方式。您唯一能做的就是使用 BrowserShots (http://browsershots.org) 之类的服务来截取您的网站在最常见浏览器中的外观。

编辑:您可以做的事,再想一想, 是编写一个确定元素大小的 JavaScript - 使用像原型这样的跨浏览器框架很容易使用 .getDimensions() - 并使用 Ajax 将该数据发送回服务器。您必须生成一个唯一的 id 来识别回调,但这应该是一个好方法。在生产环境中使用它似乎有点矫枉过正,但每天都有更多的资源消耗 Javascripts 内置在网站中。

【讨论】:

  • 我就是这么想的。但是 BrowserShots 不是一个选项,因为我想动态检查尺寸。
  • @pekka:“并使用 Ajax 将该数据发送回服务器”:我已经这样做了,但我无法在服务器上验证这个大小数据。无论我从客户端得到什么,我都必须假设它是正确的。
  • 如果您害怕被操纵,我相信还有更多方法可以破解动态 DIV 大小检查,即伪造 AJAX 数据 :) 您的客户真的可以基于 HTML 设计他们的广告吗?
  • 是的,广告基于 html 模板。客户填写一些可能会改变模板广告尺寸的 TEXT 参数。在服务器端,我得到所有模板文本变量。然后我想确认广告尺寸。
  • 嗯。听起来您必须在某处设置受信任的机器并在其上运行浏览器。然后,该受信任的实例获取维度并发送 AJAX。并非不可能完成,但也不是普通的任务。
猜你喜欢
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多