본문 바로가기

카테고리 없음

[COM/OLE] TWebBrowser 에서 새창을 열때 cookie 공유되게 하기

반응형
> TWebBrowser을 이용하여 Custom 웹브라우저를 만들었습니다.
> 그런데 한가지 미해결 문제는
> java Script에서 window.open()으로 새로운 문서를 열 때
> 기존에 가지고 있던 Cookie값이 새 창으로 전달이 되지 않는 것입니다.
>
> Internet Explorer에서 새창으로 열면 단일 Explorer 모듈이 두개의 창을
> 관리하도록 되어 있어 Cookie값이 정상적으로 연결되어 지는데,
>
> TWebBrowser에서는 새로운 Internet Explorer를 실행하여 새창을
> 열기 때문에 Cookie값이 정상적으로 공유가 되지 않는 것 같습니다.
>
> 이 문제를 해결할 방법이 있을까요 ?.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    procedure FormCreate(Sender: TObject);
    procedure WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.howto.pe.kr');
end;

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
  var ppDisp: IDispatch; var Cancel: WordBool);
var
  newweb: TWebBrowser;
begin
  newweb := TWebBrowser.Create(Self);
  newweb.ParentWindow := Self.Handle;
  ppDisp := newweb.DefaultDispatch;
end;

end.
반응형