html/tekst z ramki w IE

0

Od jakiegoś czasu męczę się z pewnym problemem: jak pobrać tekst, od biedy html z aktualnie wyświetlanej strony w IE, która zawiera ramki (chodzi mi o tekst/html z tych ramek).

Żeby nie było niejasności - robimy założenie, że strona jest dynamiczna i odpada sposób polegający na pobraniu html głównej strony z framesetami i wyciągnięciu z tego url do tych stron - nie o to mi chodzi, w moim przypadku nie zadziała to tak jak tego oczekuję. Chodzi o tekst aktualnie wyświetlany (hipotetyczna sytuacja: komputer traci połączenie z internetem w chwili wyświetlenia strony z ramkami).

Moje dotychczasowe pomysły:

  • komunikaty : z tego co czytałem nie da się tego tak zrobić, więc odpada
  • EmbeddedWb: http://www.euromind.com/iedelphi/embeddedwb/framefunctions.htm
    FrameCount zwraca 0, GetFrame też nic
  • experts-exchange - znalazłem kilka pytań tego typu, przewija się w nich jeden kod źródłowy oparty na EmbeddedWb (patrz wyżej cos się dzieje)
  • torry.net - nic konkretnego na ten temat
  • google - nic co mogło mi pomóc
  • ActiveX - nie wiem jak się do tego zabrać

Proszę o jakąkolwiek pomoc, najchętniej w Delphi.

[dopisane] zależy mi na tym bardzo, mogę nawet zapłacić za fachową pomoc

0

EmbeddedWB chyba nie jest potrzebny ale ja mam akurat tylko taki komponent:

var
  I: Integer;
  V: Variant;
begin
  for I := 0 to EmbeddedWB.OleObject.document.frames.length -1 do
  begin
    V := EmbeddedWB.OleObject.document.frames.item(I);
    V := V.document.getElementsByTagName('HTML');
    ShowMessage(V.item(0).outerHTML);
  end;
end;
0

Wypróbowałem kod i dostaje Access violation...
Czy to jest całość i czy działa u Ciebie?
Początkowo wydawało mi się, że chodzi o skojarzenie EmbeddedWB z bieżącym oknem IE, ale patrzyłem w źródła EmbeddedWB i wygląda na to, że od razu zakładany jest hook i nie powinno być problemów.

0

Wypróbowałem kod i dostaje Access violation...
Czy to jest całość i czy działa u Ciebie?

Tak, działa...

Wstawiam na formę EmbeddedWB i dwa Buttony...

procedure TForm1.Button1Click(Sender: TObject);
begin
EmbeddedWB.Navigate('http://webmaster.helion.pl/kurshtml/float/float.htm');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
V: Variant;
begin
for I := 0 to EmbeddedWB.OleObject.document.frames.length -1 do
begin
V := EmbeddedWB.OleObject.document.frames.item(I);
V := V.document.getElementsByTagName('HTML');
ShowMessage(V.item(0).outerHTML);
end;
end;

Sam zobacz...

0

OK. W takiej postaci to działa, ale pojawił się tu kod:
[code]EmbeddedWB.Navigate('http://webmaster.helion.pl/kurshtml/float/float.htm');[/code]
który w EmbeddedWB otwiera ten URL i oczywiście pobiera ramki.

Przypomnę jednak, że interesuje mnie

html z aktualnie wyświetlanej strony w IE
. I jak pisałem odpada sposób z wyciągnięciem url tej strony z IE.

I tu zaczynają się schody, bo chcąc skorzystać z Twojego sposobu należałoby "przypisać" aktualne okno IE do EmbeddedWB....

Może masz jakieś pomysły...?

1 użytkowników online, w tym zalogowanych: 0, gości: 1