HPの中にある閉じるや印刷ボタンの指令を受け取るには

解決


武田  2008-08-03 21:59:02  No: 31472

よろしくお願いします。
WebBrowserでブラウザを作成しています。
よく、ホームページに「印刷」「閉じる」などボタン(リンク)がありますがソースをみると
<a href="javascript:self.print()" class="popuplinks">印刷
<a href="#" onclick="window.close()" class="popuplinks">閉じる
などとなっていますが、この指令を取得するにはどのようにしたらできるでしょうか。(別窓が開く例もありますが)

たとえば例を探すと、FormにWebBrowserを貼り付けて
WebBrowser1.Navigate('http://configure.apj.dell.com/dellstore/config.aspx?c=jp&cs=jpdhs1&l=ja&oc=3046BBasic&s=dhs');
で「内容の確認に進む」ボタンを押すと
次の画面で「印刷」をクリックすると別窓が表示されます。
この別窓についています。
よろしくお願いします。


monaa  2008-08-04 05:49:43  No: 31473

試してませんがJavaScriptであるならオーバーライドしてその操作を改編可能です。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=080045
うまくいったらレポートお願いします。
だめそうでしたら、私の方でチェックします。


武田  2008-08-05 22:58:15  No: 31474

monaaさん教えていただきありがとうございます。
ただいま奮闘中です。
まだ結果は出ませんが今しばらく時間をください。


武田  2008-08-06 02:07:12  No: 31475

下記のようにやってみましたがうまくいきませんでした。
uses mshtml_TLB

  private
    procedure BrowserDocumentComplete(Sender: TObject; pDisp: IDispatch;var URL: OleVariant);

procedure TForm1.BrowserDocumentComplete(Sender: TObject; pDisp: IDispatch;var URL: OleVariant);
var
    window : IHTMLWindow2 ;
    document :IHTMLDocument2;
    web : IWebBrowser      ;
//ページの表示完了
begin
    //**Closeメソッドの無効化
    try
        web:= pDisp as Iwebbrowser;
        document := web.document  as IHTMLDocument2;
        window := IHTMLWindow2(Document.parentWindow);
        window.execScript('function close() {}','JavaScript' ) ;
    except
    end ;
end;


monaa  2008-08-06 07:49:06  No: 31476

上記ソースですと、
JavaScriptのCloseメソッドが無効化されていると思います。
確かにこの方法だと、指令を受けとるではなくてあらかじめ操作を書き換えるですね。JavaScriptの実行を巧妙にフックし変更しようとなるとかなり難しいかと思います。(私にはわかりません。)
実行したい操作がJavaScriptやVBSで実現できる内容であれば{}の中にコードを書き込めばそのまま動作しますよ。
もう少し、動作内容が絞り込めればなにか手伝えるかもしれません。
OnButton1Clickの様な簡単な扱いは期待しないでくださいね。


武田  2008-08-06 20:51:18  No: 31477

monaaさんたびたびありがとうございます。
高度な操作みたいですので
もう少し勉強してみます。
一応解決とさせていただきました。
ありがとうございました。


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

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






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