我遇到TWebBrowser組件與重定向有關的問題。以下是顯示Google圖片搜索的代碼。代碼運行時,用戶會在下面顯示鏈接的縮略圖:「查找此圖像的其他尺寸」。如果您點擊該鏈接,則會顯示匹配的圖片。 「訪問網頁」和「查看圖片」:如果用戶隨後對圖像的一個點擊,瀏覽器會在窗口的中間這給兩個按鈕的用戶訪問顯示擴大黑帶Delphi TWebBrowser:如何停止重定向到新窗口
在這裏問題開始。如果我點擊了「查看圖片」按鈕,這個程序將啓動Internet Explorer窗口顯示消息:
重定向通知
的網頁試圖將你...
如何停止這個?我不希望一個IE窗口突然出現在我的Delphi應用程序上,我也不想讓這個「重定向通知」出現。我希望重定向出現在觸發重定向的主窗體的TWebBrowser中。
Unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw,
urlmon;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
UserAgent : AnsiString;
begin
UserAgent := 'Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, PChar(UserAgent), Length(UserAgent)+1, 0);
WebBrowser1.navigate('http://images.google.com/searchbyimage?site=search&image_url=https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_116x41dp.png');
end;
end.
你想用彈出窗口做什麼?阻止它,或者將它顯示在應用程序的窗口中? – whosrdaddy
我希望重定向發生在WebBrowser1組件中,而不是在用戶的默認Web瀏覽器中。 – instrumentally
從技術上講,它是一個帶有重定向頁面的彈出窗口。所以你需要創建一個帶有瀏覽器組件的第二個表單。您可以使用'OnNewWindow2'事件來檢測彈出窗口。 – whosrdaddy