Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизКак узнать на какой адрес будет переход? Найти похожие ветки
← →
html (2009-02-03 12:40) [0]Всем привет!
На форме есть два TWebBrouser
кликаю на первом:
procedure TfMain.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
MousePos: TPoint;
HtmlElement: IHTMLElement;
ImgElement: IHTMLIMGElement;
AnchorElement: IHTMLAnchorElement;
iHTMLDoc: IHtmlDocument2;
begin
FCurrentLink := "";
if Supports(WebBrowser1.Document, IHtmlDocument2, iHTMLDoc) then
begin
if GetCursorPos(MousePos) then
begin
MousePos := WebBrowser1.ScreenToClient(MousePos);
HtmlElement := iHTMLDoc.ElementFromPoint(MousePos.X, MousePos.Y);
if Assigned(HtmlElement) then
begin
try
HtmlElement.QueryInterface(IHTMLIMGElement, imgElement);
if Assigned(imgElement) then
FCurrentLink := ImgElement.href;
HtmlElement.QueryInterface(IHTMLAnchorElement, AnchorElement);
if Assigned(AnchorElement) then
FCurrentLink := AnchorElement.href;
except
end;
end;
end;
end; //}
ppDisp := WebBrowser2.ControlInterface;
end;
В обработчике OnDocumentComplite WebBrouser2 проверяю
procedure TfMain.WebBrowser2DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if (FCurrentLink <> string(URL)) then
Exit;
...
так вот, в первой процедуре не всегда определяется ссылка, на которую происходит переход. Какие еще интерфейся надо сюда вставить:
HtmlElement.QueryInterface(???, );
или можно сделать как-нибудь по другому?
← →
html (2009-02-03 13:22) [1]обед, что ли?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.081 c