Проверка реальной видимости элемента в html

Тема в разделе "PHP Pro", создана пользователем denover, 25 авг 2011.

Статус темы:
Закрыта.
  1. denover

    denover Постоялец

    Регистр.:
    5 июн 2008
    Сообщения:
    56
    Симпатии:
    7
    Добрый день,

    мне нужен скрипт на php, который берет html-ку и определяет реальную видимость некого элемента (скажем блока <div>). Т.е. фактически он должен определить, будет ли этот блок виден при открытии страницы в браузере.

    Скажите, возможно ли написать такой алгоритм ?

    Спасибо
     
  2. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    на самом php:
    теоретически - да
    практически, чтоб на 100% универсально - нет [ это эмулятор браузера писать надо ]

    а вот на js скорее всего без особых проблем можно
     
  3. denover

    denover Постоялец

    Регистр.:
    5 июн 2008
    Сообщения:
    56
    Симпатии:
    7
    Хотелось бы увидеть решение на js :)
     
  4. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    500 евро - за 10 дней сделаю ))
    если же хотите сами, то могу подсказать в какую сторону рыть :)
     
    denover нравится это.
  5. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    562
    2 врианта приходят на ум -
    1- эмуляция браузера.
    2- классы типа jquery. (phpQuery)
    Затем анализируем - чтобы кардиналы других слоёв не покрывали нужный слой с элементом и прочее.

    Если это не получится, то можно с помощью браузера - Закрашиваем нужный слой каким нибуть фоном, снимаем скриншот - и анализируем картинку)
     
  6. denover

    denover Постоялец

    Регистр.:
    5 июн 2008
    Сообщения:
    56
    Симпатии:
    7
    Подскажите в какую сторону рыть. https://www.nulled.cc/showthread.php?t=216288
     
  7. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    кстати, насчет php - возможно задачу можно решить при помощи
    Xweb Human Emulator


    насчет js - мысль в том, чтобы загрузить для анализа страницу в iframe и через dom или jquery смотреть свойство visible.
    тут есть один важный нюанс - из за соображений безопасности, вроде как, просто так к странице с чужого домена доступ через dom не получишь - тут надо исхитрятся.
    один из вариантов обхода: на своем домене создаем php скрипт XXX.php, который по запросу [XXX.php?url=http://blabla.com/index.php] просто скачивает содержимое нужного url и отдает его уже со своего домена. [внутри этого скрипта, для универсальности, возможно придется делать замену всех ссылок на исходный домен (Перейти по ссылке) на наш домен через XXX.php?url=http://blabla.com/xyz ]
     
  8. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    890
    Симпатии:
    562
    не, обычной проверкой на visible тут дело явно не ограничивается. А что если слой имеет координаты -9999px? Что если размеры этого слоя 0 ? Что если поверх него наложен другой слой? ...
     
  9. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    ну, если учитывать такие хитрости, то тогда можно попробовать через Human Emulator - внедрять в загруженный html в проверяемые элементы "сигнализацию" через OnMouseOver() и гонять курсор по всей рабочей области страницы.
     
Статус темы:
Закрыта.