我写过一个网络应用程序,它使用侧面的广告横幅来支持免费帐户。问题是,由于广告被加载到自己的<div>中,所以在任何现代浏览器中进入开发人员/调试控制台都相对容易,并且可以使用CSS覆盖删除div或将广告大小调整为0px(用户可能会这样做在应用程序工作区中获得更多房地产)。为了防止这种情况发生,我正在考虑定期检查包含广告的div的属性(包括CSS样式)是否发生变化,以及是否重新加载页面。由于我依赖于某个绘图的画布元素,重新加载对用户来说会相当恼人,因为它会清除画布,所以除非广告被篡改,否则我不想这样做。检测用户篡改DOM
我见过一些跟踪DOM变化的类似问题,那里的人们建议使用突变事件。然而,根据这些答案,似乎并不是所有浏览器都支持这种支持(然后我再次看到的线索是2008年和2009年的,因此从那时起事情可能会发生变化)。
我正在考虑的另一种替代方法是在页面完成加载后,在广告的div的offsetWidth,offsetHeight,offsetTop,offsetLeft中进行读取,并且持续地将它们与当前值进行比较(没有太多可以做的事情如果你不能移动div,就会让div消失)。
你们有什么建议?
如果你不能篡改DOM,Web开发将不会变得有趣。 – mrk 2011-06-15 03:55:31
如果用户可能会这样做以获得更多房地产,您是否可以阻止(修复可用区域的宽度)来消除该原因? – 2011-06-15 04:05:19
谢谢@Don,这就是我最终做的。如果广告在那里,我有几个div可以调整大小,所以即使用户删除了广告,也不会有任何好处,除非js代码被修改,或者用户修改了多个其他div,并且不会事后调整窗口大小。虽然其他人提出了非常有效的观点,但我不同意他们已经回答了这个问题。如果我StackOverflow让我接受评论作为解决方案,我会接受你的评论:) – 2011-06-15 19:03:57