我目前正在第三方网页上运行脚本以确定页面的最大尺寸。起初,这可能看起来好像我可以在我的父包装器Animals
上使用outerWidth()
和outerHeight()
,但问题是页面包装器的大小与其子节点不同。所以我可能有一个父级是0x0,其子级是400x400,其中一个孩子是500x500。看起来他们只是允许溢出。我尝试了一些CSS技巧,试图强制父#base
正确调整自己的大小,但是孩子似乎没有推动这种变化并修改他们的CSS导致页面上的实际对齐问题。此外,页面上有许多隐藏的项目,直到稍后或在页面交互过程中才会显示,因此这进一步阻止我只抓住#base
的外部尺寸或类似内容。
我目前的方法是遍历页面上的每个元素。我检查它的位置和尺寸。基于这些,我更新了我的最大尺寸。我还必须检查水平和垂直滚动元素,因为它们也可能在页面上。如果包装器的宽度为500px且孩子的宽度为1000px,但是滚动,我不希望这会影响我的最大尺寸。无论如何,这种方法有效,但速度很慢。有时页面可能有+ 15k元素。使用这些数字,我的机器需要10秒钟。我可能能够优化一些条件语句来使用布尔值而不是评估值,但我不认为这会产生显着的差异。我希望有一些我完全忽略的过程。下面是我当前的代码片段和演示,演示了在运行代码之前以及代码运行之后页面的外观。
演示:https://p826ni.axshare.com/#g=1&p=without_code
#base