Скрипт вычисления координат объекта
Доброго всем времени суток.
Я не силен в javascript, пишу на C#. В данный момент стоит проблема с поиском объектов в браузере на движке Awesomium. Первая часть задачи: при наведении мыши на любой объект в браузере он должен подсвечиваться рамкой. При нажатии правой клавиши код объекта сохраняется для дальнейшей работы. Обработку кнопки мыши и сохранение объекта я нашел как сделать: JSValue result = webView.ExecuteJavascriptWithResult(@"document.ele mentFromPoint(" + e.X.ToString() + "," + e.Y.ToString() + ").outerHTML"); В переменной result я получаю код объекта: <input id="mainSearchInput" type="text" class="searchStr focused" name="Ntt" autocomplete="off" placeholder="Search B&H Photo, Video & Pro Audio" value=""> Не решены две проблемы: - Как подсвечивать объекты в браузере? Нужно повесить какой то скрипт на событие MouseHover - Как найти координаты захваченного объекта? Есть функция getBoundingClientRect() но как ей передать объект захваченный по координатам? |
Подсвечивать элементы оптимальнее всего используя CSS-правила.
Следующий код будет выделять красной рамкой абсолютно все элементы на странице: *{ border:1px solid transparent} *:hover{ border:1px solid red} А этот только divы и таблицы: div, table{ border:1px solid transparent} div:hover, table:hover{ border:1px solid red} Для устаревших браузеров (IE 6), нужно принудительно устанавливать подсвечивание через событие onMouseOver и снимать по событию onMouseOut. Положение элемента на странице можно узнать через свойства (offsetLeft и offsetTop) этого элемента. Это координаты верхней левой точки элемента относительно такой же точки его родителя. |
Проект будет работать только на движке Awesomium, но там все очень своеобразно :-)
Например попытался повесить ваш скрипт на событие зависания мыши над полем браузера private void webViewBitmap_MouseHover(object sender, EventArgs e) { webView.ExecuteJavascript(@"div, table{ border:1px solid transparent} div:hover, table:hover{ border:1px solid red}"); } И к великой печали не работает ничего, скрипт отрабатывается но на экране ничего нет. |
Стили нужно добавлять в файл стилей. И я не знаком с движком Awesomium поэтому хз.
|
Так по идее стили лежать на хостинге должны, но в моем случае не я же сайтописатель, я по сути браузер доделываю под себя.
А движок можно тут посмотреть Awesomium.com |
Часовой пояс GMT +3, время: 23:39. |