Webbrowser, operacje na javascript

0

Witam

mam takie cos na stronie do logowania
<a href="#" onclick="return Index.submit_login('server_pl29');"><span class="world_button_active">Świat 29</span></a>
żeby kliko w wyznaczony serwer co trzeba zrobić? mam takie funkcje

function ExecuteScript(doc: IHTMLDocument2; script: string; language: string): Boolean;
var
  win: IHTMLWindow2;
  Olelanguage: Olevariant;
begin
  if doc <> nil then
  begin
    try
      win := doc.parentWindow;
      if win <> nil then
      begin
        try
          Olelanguage := language;
          win.ExecScript(script, Olelanguage);
        finally
          win := nil;
        end;
      end;
    finally
      doc := nil;
    end;
  end;
end;
procedure WWWczekajNaWWW;
begin
  while not(strona_sciagnieta) do
    Application.ProcessMessages;  //zwalnianie kolejki
end;


function www_wykonaj_skrypt(sNazwaSkryptu:string; WebBrowserX:TObject): boolean;
var
  doc: IHtmlDocument2;
begin
  strona_sciagnieta:=false;
  TWebBrowser(WebBrowserX).ControlInterface.Document.QueryInterface(IHtmlDocument2, doc);
  result:=ExecuteScript(doc, sNazwaSkryptu, 'JavaScript');
  WWWczekajNaWWW;
end;



i tu wywyołanie kliknięcia

procedure TForm1.Button3Click(Sender: TObject);
var
IDoc: IHTMLDocument2;
begin

www_wykonaj_skrypt('document.submit_login(server_pl50)',WebBrowser1);

end;




i mi to nie działa, czy robie cos zle lub jest zła funkcja?
 
0

Pytanie nadal aktualne, ciagle szukam i nic nie znalazłem.

Webrwoser wywala taki błąd

Error: 'server_pl50' is undefined

0

A dlaczego masz 50 a w kodzie strony jest 29?

0

Dlatego, że są tam swiaty do wyboru i dla świata 50 jest tak samo.

0

No ok tylko widzę że parametr powinien być przekazany w apostrofach więc kombinuj coś ala:

www_wykonaj_skrypt('document.submit_login('#$27'server_pl50'#$27')',WebBrowser1);
0

Gdy dam tak jak napisałes:
object doesn't support this property or method
gdy dam w nawiasach po dwa ''
to, to samo

0

Czyli teraz jest dobrze tzn. prawidłowo przekazujesz parametr (obojętne czy tak jak ja proponowałem czy tak jak Ty z 2 apostrofami) ale w kodzie strony jest Index.submit_login a nie document.submit_login tak że to może być przez to przynajmniej tak komunikat błędu wskazuje.

0

Dzięki teraz działa, problem w tym był, że nie było ' jak robiłem pojedynćze ' to zwracało błąd poczas komplikacji, ale jak próbowałem z Index.submit_login to robiłem bez apostrofów. Dzięki za pomoc.

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