リンクをクリック


尾崎  2010-12-01 04:47:13  No: 39628

WebBrowserで表示したHTMLのリンク文字を指定してクリックをさせたいのですが方法をおしえていただけますでしょうか?
VBではlink.InnerTextという便利なものがあるのですがDelphiではどのようにすればよいでしょうか?
Delphi2010


monaa  2010-12-01 20:05:26  No: 39629

そういった内容はMSHTML.pas内にあります。

procedure TForm1.Button4Click(Sender: TObject);
//uses MSHTML
var
  i:Integer;
  HTMLDoc:DispHTMLDocument;
  HTMLCollection:IHTMLElementCollection;
  HTMLElement:IHTMLElement;
begin
  HTMLDoc:= WebBrowser1.Document as DispHTMLDocument;
  HTMLCollection := HTMLDoc.links;
  for i := 0 to (HTMLCollection.length -1) do
  begin
    HTMLElement := HTMLCollection.item(i, 0) as IHTMLElement;
    Memo1.Lines.Add(HTMLElement.InnerText);
  end;
end;


尾崎  2010-12-02 01:44:10  No: 39630

monaa様さっそくのご返信ありがとうございます。
当方でそのまま設置してみた所、
HTMLCollection := HTMLDoc.links;
の部分でエラーがでました
HTMLDoc.linksで検索して他のソースなども見てみましたが
HTMLDoc.links部分でエラーになってしまいます、理解が足りないのは重々承知の上でこの解決方法をお聞きしたく思います。


  2010-12-02 02:10:25  No: 39631

>当方でそのまま設置してみた所、
>HTMLCollection := HTMLDoc.links;
>の部分でエラーがでました
適切な状況で実行すればエラーは出ないので、
自分の実行状況のどこに問題があるのかを自分で確認すべきでしょう。


尾崎  2010-12-02 02:14:51  No: 39632

スイマセン、自己解決しました、コンテンツ表示までに処理を行ってしまいエラーがでていたようです、ページの読み込みを終わらせてから処理を行うようにしました、このソースはどの部分でリンク対象文をしていするのでしょうか?


Kenny  2010-12-02 02:19:15  No: 39633

エラーは具体的にどのように出ますか?
コンパイルできますか?
実行時にエラーになりますか?


Kenny  2010-12-02 02:37:44  No: 39634

重なりましたね。

Memo1.Lines.Add(HTMLElement.innerText);を
Memo1.Lines.Add(HTMLElement.toString);に

変えてみてください。Memo1のWordWrapをFalseにすると、よく分かると思います。
あとは必要なURLをMemo1.Lines()で読み出して、Webbrowser1.Navigete()すればOK。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加