检查页面上的元素是否未被真实用户隐藏?

时间:2017-02-05 22:14:42

标签: javascript php html

使用PHP / Javascript,是否可以检查远程网站上的某个元素(例如链接)是否存在并且实际上是真人

我知道可以检查页面源中是否存在链接/元素(通过使用cURL或file_get_contents()函数),但是可能会发生元素隐藏在<style="display:none">{element}</style> CSS样式后面或类或<script>或评论标签之间 - 然后它不会显示给公共用户。

所以我想检查是否可以找出元素在源代码中是否可见,但对于实际/真实用户是不可见的。这可能是不可能的,但想确保......

2 个答案:

答案 0 :(得分:1)

我看到两个选项:

  1. 使用javascript(和jQuery)检查可见性和隐藏标签 请参阅:https://api.jquery.com/visible-selector/https://api.jquery.com/hidden-selector/

  2. 在DOMDocument中重新创建页面并迭代节点以检查使元素不可见的属性。见:http://php.net/manual/en/class.domdocument.php

  3. 第二个选项是一个简短的答案,它需要多个步骤来完成它,我不知道如何,因为我自己从未做过,但研究手册让我说它是可能的。

答案 1 :(得分:1)

如果目标是跨域的,你可以通过使用curl将外部页面抓取到php持有者页面,然后将该php持有者页面作为jQuery Ajax函数和:hidden选择器加载来实现此目的

<强> holder.php

 $ch = curl_init("http://www.foo.com/bar");
 $html = curl_exec($ch);
 echo $html;

page.php或page.html

 $.get('holder.php', function (data) {
     hidden_tags = $(data).find('a:hidden');
 });