Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в EmbeddedWB вывести часть страницы 
:(
    Опции темы
DemonXT
Дата 30.4.2012, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.2.2009

Репутация: нет
Всего: нет



Доброе Время суток!

Подскажите возможно-ли через компанент TEmbeddedWB вывести не всю старицу, а только нужный мне блок.
Например если написать:
Код

EmbeddedWB1.Navigate('http://otdahni.ru/');

Произойдёт вывод всей страницы сайта, а мне нужно чтобы выводился только блок авторизации вида:
user posted image

Помогите пожалуйста!

Это сообщение отредактировал(а) DemonXT - 30.4.2012, 22:12
PM MAIL   Вверх
mistrmax
Дата 1.5.2012, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Можно воспользоваться функцией ExecScript(sExpression, sLanguage: string);
К примеру: 
Код

EmbeddedWB1.ExecScript('alert(0);','JavaScript');

Выполните яваскрипт который скрывает все элементы кроме нужных.
PM   Вверх
DemonXT
Дата 1.5.2012, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.2.2009

Репутация: нет
Всего: нет



Это не плохая мысль. Спасибо.
Вот только я не силён JavaScript. Может поможете такой скрипт собрать?
PM MAIL   Вверх
XperT
Дата 1.5.2012, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.8.2006

Репутация: нет
Всего: 4



С JavaScript очень много гемороя: во-первых выполнять скрипты нужно после полной загрузки страницы (а этот момент еще нужно определить и в некоторых случаях это бывает довольно проблематично), во-вторых пользователь успеет увидеть страницу полностью, перед тем как сработают скрипты. Как на меня, то лучше загружать код страницы отдельно, вырезать всё лишнее, а потом подсовывать в браузер. А лучше вообще код формы хранить где-то вместе с программой и подсовывать браузеру без лишней загрузки страницы, это же не динамическая информация (разве что там есть скрытые поля с динамикой).
PM MAIL   Вверх
DemonXT
Дата 2.5.2012, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.2.2009

Репутация: нет
Всего: нет



Хранить код страницы, а потом его подставлять мне совсем не подходит. Так как теряется севязь с текущей сессией, а мне это не нужно.
PM MAIL   Вверх
XperT
Дата 3.5.2012, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.8.2006

Репутация: нет
Всего: 4



Ну тогда остаются ява скрипты, либо пройтись по DOM и захайдить все лишние элементы. Но в любом случае без описанных мной выше минусов решения я не вижу.

В идеале было бы, если это ваш сайт конечно, сделать отдельную страницу авторизации для своей программы.

Еще, как вариант, можно сделать аналогичные поля для логина в своей программе, при заполнении которых отправляется вручную составленный POST запрос и дальнейшая работа уже ведется через окно браузера.
PM MAIL   Вверх
DemonXT
Дата 3.5.2012, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.2.2009

Репутация: нет
Всего: нет



А можно сделать по-другому:
Страница будет открыться полностью в маленьком окне, а я просто сделаю скроллинг по вертикали и горизонтали на нужную позицию?
Как можно в TEmbeddedWB программно сделать скроллинг на нужную позицию?
PM MAIL   Вверх
XperT
Дата 3.5.2012, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.8.2006

Репутация: нет
Всего: 4



У меня завалялся такой код вертикального скролинга:
Код

procedure WBScroll(x:integer);
var
  lDoc: IHTMLDocument2;
  lBody: IHTMLElement;
  lStyle: IHTMLStyle;
  vvv: IHTMLElement2;
begin
  lDoc := IHTMLDocument2(TEmbeddedWB(EmbeddedWB1).Document);
  if Assigned(lDoc) then
  begin
    lBody := lDoc.Body;
    if Assigned(lBody) then
    begin
      lBody.style.QueryInterface(IID_IHTMLStyle, lStyle);
      if Assigned(lStyle) then
      begin
       lBody.QueryInterface(IID_IHTMLElement2, vvv);
       vvv.scrollTop:=x;
      end;
    end
  end;
end;


Сделать аналог горизонтального скролинга не должно быть проблемой

Это сообщение отредактировал(а) XperT - 3.5.2012, 12:16
PM MAIL   Вверх
DemonXT
Дата 3.5.2012, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.2.2009

Репутация: нет
Всего: нет



Спасибо за помощь придумал код по-проще:
Код

EmbeddedWB.ScrollToPosition(33,720);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.1351 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.