【发布时间】:2011-06-15 11:24:40
【问题描述】:
我编写了一个网络应用程序,它使用侧面的广告横幅来支持免费帐户。问题是,由于广告是在其自己的
中加载的,因此在任何现代浏览器中进入开发人员/调试控制台并删除 div 或使用 CSS 覆盖将广告大小调整为 0px 相对容易(用户可能会这样做在应用程序工作区中获得更多不动产)。为了防止这种情况,我正在考虑定期检查带有广告的 div 的属性是否发生了变化(包括 CSS 样式),如果发生了变化,请重新加载页面。由于我依赖于画布元素进行某些绘图,因此重新加载对用户来说会比较烦人,因为它会清除画布,所以除非广告被篡改,否则我不想这样做。
我看到了一些关于跟踪 DOM 更改的类似问题,人们建议使用突变事件。但是,根据答案,似乎并非所有浏览器都提供支持(再说一次,我看到的线程是 2008 年和 2009 年的,所以从那时起情况可能会发生变化)。
我正在考虑的另一种选择是在页面完成加载后读取带有广告的 div 的 offsetWidth、offsetHeight、offsetTop、offsetLeft,并定期将它们与当前值进行比较(您可以做的不多如果无法移动,请让 div 消失)。
你们有什么建议?
【问题讨论】:
-
如果你不能篡改 DOM,Web 开发就不会那么有趣了。
-
如果用户这样做是为了获得更多的空间,你能阻止(固定可用区域的宽度)消除这个原因吗?
-
感谢@Don,这就是我最终所做的。如果广告在那里,我有几个 div 与它们将占用的大小对齐,所以即使用户删除了广告,除非 js 代码也被修改或用户修改了多个其他 div 并且没有之后调整窗口大小。虽然其他人提出了非常有效的观点,但我不同意他们已经回答了这个问题。如果我 StackOverflow 让我接受 cmets 作为解决方案,我会接受你的评论 :)
-
很高兴能帮上忙!我发表评论是因为我认为我在技术上没有回答您的问题。
标签: javascript html css dom